package.json

Temel olanlar

package.json içerisindeki en önemli iki alan isim ve versiyondur, onlar olmadan paketiniz yüklenemeyecek. name and version alanları benzeri olmayan bir id yaratmak için birlikte kullanılırlar.

name

{
  "name": "my-awesome-package"
}

Bu paketin adı. URL’ler üzerinde bir argüman olarak kullanılır. komut satırı ve dizin adı içinde node_modules.

yarn add [name]
node_modules/[name]


https://registry.npmjs.org/[name]/-/[name]-[version].tgz

Kurallar

  • 214 karakterden az ya da 214 karaktere eşit olmalı ( kapsamlı paketler için @scope/ dahil).
  • Bir noktayla (.) ya da bir altçizgiyle (_) başlamamalı.
  • İsimde büyük harf olmamalıdır.
  • Yalnızca URL-güvenli karakterlerini kullanmalıdır.

İpuçları

  • Çekirdek bir Node.js modülü ile aynı adı kullanmayın
  • Ismin içine js ya da node koymayın.
  • İsimleri kısa ve tanımlayıcı kullanın. İnsanlardan ismine bakarak ne olduğunu anlamasını istiyorsunuz fakat require() çağrılarının içerisinde de kullanılacak.
  • kayıt içerisinde aynı isimli iki şey olmadığından emin olun.

version

{
  "version": "1.0.0"
}

Paketinizin geçerli sürümü.

Bilgi

description

{
  "description": "Bu harika paket hakkında kısa bir açıklama"
}

Tanımlama, kişilerin paketin amacını anlamalarına yardımcı olan bir dizedir. Bir paket yöneticisinde de paket ararken de kullanılabilir.

keywords

{
  "keywords": ["kısa", "alakalı", "anahtar", "kelimeler"]
}

Anahtar kelimeler, birisi paket yöneticisinde paket araması yaparken yararlı olacak bir dizi satırdır.

license

{
  "license": "MIT",
  "license": "(MIT or GPL-3.0)",
  "license": "SEE LICENSE IN LICENSE_FILENAME.txt",
  "license": "UNLICENSED"
}

Kullanıcıların nasıl izin verildiğini öğrenmeleri için tüm paketlerde bir lisans belirtilmelidir onu ve onu yerleştirdiğiniz herhangi bir kısıtlamayı kullanmak.

Açık kaynak kullanımı teşvik edilmektedir (OSI-onaylı) lisans sürece yapmamak için özel bir nedenin var. Eğer paketinizi işinizin bir parçası olarak inşa ettiyseniz lisans üzerine karar vermeden önce şirketinizle kontrol etmeniz iyi olur.

Aşağıdakilerden bir tanesini seçin:

  • Geçerli bir SPDX lisans tanımlayıcı eğer standart bir lisans kullanıyorsanız.
  • A valid SPDX license expression syntax 2.0 expression if you are using multiple standard licenses.
  • A SEE LICENSE IN <filename> string that points to a <filename> in the top level of your package if you are using a non-standard license.
  • A UNLICENSED string if you do not want to grant others the right to use a private or unpublished package under any terms.

Paket kodu bulunduğunda, belge, yayının konumu gibi çeşitli bağlantıları belirtin.

homepage

{
  "homepage": "https://your-package.org"
}

The homepage is the URL to the landing page or documentation for your package.

bugs

{
  "bugs": "https://github.com/user/repo/issues"
}

Bu URL, projenizdeki olayları izleme sayfasıdır. Bu aynı zamanda bir e-posta adresi olabilir. Kullanıcılara, paketinizle ilgili olayları bildirmenin bir yolunu sunar.

repository

{
  "repository": { "type": "git", "url": "https://github.com/user/repo.git" },
  "repository": "github:user/repo",
  "repository": "gitlab:user/repo",
  "repository": "bitbucket:user/repo",
  "repository": "gist:a1b2c3d4e5f"
}

Depo, paket kaynak kodunun barındırıldığı yerdir.

Geliştiriciler

Projenizin koruyucuları.

author


{
  "Yazar": {
    "isim": "Adınız",
    "e-posta": "you@example.com",
    "url": "http://your-website.com"
  },
  "Yazar": "Adınız <you@example.com> (http://your-website.com)"
}

Paket yazar bilgileri. Bir yazar bir kişidir.

contributors

{
  "katkıda bulunanlar": [
    { "isim": "Arkadaşınız", "e-posta": "friend@example.com", "url": "http://friends-website.com" }
    { "isim": "diğer arkadaş", "e-posta": "other@example.com", "url": "http://other-website.com" }
  ],
  "katkıda bulunanlar": [
    "Arkadaşınız <friend@example.com> (http://friends-website.com)",
    "diğer arkadaş <other@example.com> (http://other-website.com)"
  ]
}

Paketinize katkıda bulunan kişiler. Birer insandır.

Dosyalar

Projenize dahil edilecek dosyaları, projenizin ana giriş noktasıyla beraber belirtebilirsiniz.

files

{
  "files": ["filename.js", "directory/", "glob/*.{js,json}"]
}

Bunlar, projenize dahil olan dosyalardır. Dosyaları bir birim olarak belirtebilir, dizinleri tamamlayabilir veya belirli kriterleri karşılayan tüm dosyaları eklemek için ifadeler kullanabilirsiniz.

main

{
  "main": "dosya.js"
}

Bu, projenizin işlevselliği için birincil giriş noktasıdır.

bin

{
  "bin": "bin.js",
  "bin": {
    "komut-ismi": "bin/komut-ismi.js",
    "diger-komut": "bin/diger-komut"
  }
}

Projenize yüklenecek çalıştırılabilir dosyalar.

man

{
  "man": "./man/doc.1",
  "man": ["./man/doc.1", "./man/doc.2"]
}

Projenizle ilişkili kılavuz sayfalarınız varsa buraya ekleyiniz.

directories

{
  "directories": {
    "lib": "path/to/lib/",
    "bin": "path/to/bin/",
    "man": "path/to/man/",
    "doc": "path/to/doc/",
    "example": "path/to/example/"
  }
}

Paketi yüklerken ikili dosyaları, kılavuz sayfalar, dokümantasyonları vb yüklemek için yerlerini belirtebilirsiniz.

Görevler

Paketinizde çalıştırılabilir komut dosyaları veya diğer yapılandırmalar olabilir.

scripts

{
  "scripts": {
    "build-project": "node build-project.js"
  }
}

Komut dizileri, basit oluşturma işlemleri veya geliştirme araçları gibi paketinizle ilgili görevleri otomatikleştirmenin mükemmel bir yoludur. "scripts" alanını kullanarak, yarn çalıştır <script> olarak çalıştırılacak çeşitli komut dosyaları tanımlayabilirsiniz. Örneğin, yukarıdaki build-project komut dosyası yarn build-project çalıştır ile çağrılabilir ve node build-project.js ‘i çalıştıracaktır.

Bazı betik isimleri özeldir. Tanımlanırsa, paketiniz kurulmadan önce ` ön kurulum</ 0> komut dosyası yarn dan çağrılır. Uyumluluk nedenleriyle, paketiniz kurulumu tamamladıktan sonra yükleme </ 0>, son yükleme </ 0> ve önyükleme </ 0> komut dosyaları çağrılır.</p>

Başlat </ 0> komut dosyası değeri, varsayılan olarak node server.js` şeklindedir. ### `config` ```json { "config": { "port": "8080" } } ``` Yapılandırma seçenekleri veya komut dosyalarınızda kullanılan parametreler. ## Bağımlılıklar Paketiniz büyük olasılıkla diğer paketlere bağlı olacaktır. Bu bağımlılıkları ` package.json </ 0> dosyanızda belirtebilirsiniz. </p>

dependencies` </h3> ```json { "dependencies": { "package-1": "^3.1.4" } } ``` Bunlar, paketinizin geliştirilmesi ve üretilmesi için gereken bağımlılıklardır. > You can specify an exact version, a minimum version (e.g., `>=`) or a range of versions (e.g. `>= ... <`). ### `devDependecies` ```json { "devDependencies": { "package-2": "^0.4.2" } } ``` Bunlar paketinizi geliştirirken yalnızca ihtiyaç duyulan ancak üretimde kurulu olmayacak olan paketlerdir. ### `peerDependencies` ```json { "peerDependencies": { "package-3": "^2.7.18" } } ``` Eş bağımlılıkları diğer paketlerin sürümleri ile paket uyumluluk durumu için izin verir. ### `optionalDependencies` ```json { "optionalDependencies": { "package-5": "^1.6.1" } } ``` İsteğe bağlı bağımlılıklar paketin dahilinde kullanılabilir, ancak gerekli değildir.eğer İsteğe bağlı paket bulunamaz ise, yükleme devam eder ### `bundledDependencies` ```json { "bundledDependencies": ["package-4"] } ``` Birlikte verilen bağımlılıklar, paketinizi yayınlarken birlikte paketlenecek bir dizi paket adıdır. ### `flat` ```json { "flat": true } ``` Paketiniz yalnızca belirli bir bağımlılığın bir sürümüne izin veriyorsa ve komut satırında [` yarn kurulumu --flat `](/tr/docs/cli/install#toc-yarn-install-flat) ile aynı davranışı uygulamak istiyorsanız bunu ` true </1 olarak ayarlayın >.</p>

package.json ` öğeniz ` "düz": true ` içeriyorsa ve diğer paketler sizinkine bağlıysa (örneğin, bir uygulama yerine kitaplık oluşturuyorsanız), diğer paketler ` package.json ` 'da ` "flat": true ` ya da komut satırında ` yarn install --flat ` ile kurulmalıdır. ### `resolutions` ```json {    "kararlar": {      "transitive-package-1": "0.0.29",      "transitive-package-2": "dosya: ./ yerel-çatallar / geçişli paket-2",      "bağımlılıklar-paket-1 / geçişli-paket-3": "^ 2.1.1"    } } ``` Belirli bir iç içe bağımlılığın bir sürümünü geçersiz kılmanıza izin verir. Tam spec. için [the Selective Versions Resolutions RFC](https://github.com/yarnpkg/rfcs/blob/master/implemented/0000-selective-versions-resolutions.md)'a bakın. Note that installing dependencies via [`yarn install --flat`] will automatically add a `resolutions` block to your `package.json` file. ## Sistem Pakete ilişkin işletim sistemi uyumluluğu gibi sistem düzeyinde bilgi sağlayabilirsiniz. ### `engines` ```json { "engines": { "node": ">=4.4.7 <7.0.0", "zlib": "^1.2.8", "yarn": "^0.14.0" } } ``` Motorları paketi ile kullanılması gereken müşteri sürümlerini belirtin. Bu, `process.versions` 'ı ve mevcut yarn versiyonunu kontrol eder. Bu kontrol, bir istisna olmak üzere normal semver kurallarını izlemektedir. Yayın öncesi sürümlerin açık bir şekilde bir yayın öncesi belirtilmeyen sembollerle eşleşmesine izin verir. Örneğin, `1.4.0-rc.0`, `>=1.3.0` ile eşleşir; bu, tipik bir semver kontrolüyle eşleşmez. ### `os` ```json { "os": ["darwin", "linux"], "os": ["!win32"] } ``` Bu paket için işletim sistemi uyumluluğu belirtir.`işlemine karşı denetler.platform`. ### `cpu` ```json { "cpu": ["x64", "ia32"], "cpu": ["!arm", "!mips"] } ``` Use this to specify your package will only run on certain CPU architectures. This checks against `process.arch`. ## Yayımlama ### `private` ```json { "private": true } ``` Basılan paketinizin bir paket yöneticisinde yayınlanmasını istemiyorsanız, bunu `true` olarak ayarlayın. ### `publishConfig` ```json { "publishConfig": { ... } } ``` Bu yapılandırma değerleri, paketiniz yayınlanırken kullanılacaktır. Örneğin, paketinizi etiketleyebilirsiniz.