nodejs npm package.json Chinese document_node.js

WBOY
Lepaskan: 2016-05-16 16:37:22
asal
1604 orang telah melayarinya

Pengenalan

Dokumen ini mempunyai semua konfigurasi yang diperlukan dalam package.json. Ia mestilah json sebenar, bukan objek js.

Kebanyakan tingkah laku yang diterangkan dalam dokumen ini dipengaruhi oleh npm-config(7).

Nilai lalai

npm akan menetapkan beberapa nilai lalai berdasarkan kandungan pakej.

Salin kod Kod adalah seperti berikut:
"skrip": {"start": "pelayan nod .js" }
Jika terdapat fail server.js dalam direktori akar pakej, npm akan menetapkan arahan mula kepada node server.js secara lalai.

"skrip":{"preinstall": "nod-waf clean || true; nod-waf configure build"}
Jika terdapat fail wscript dalam direktori akar pakej, npm akan menyusun arahan prapasang dengan nod-waf secara lalai.

"skrip":{"preinstall": "node-gyp rebuild"}
Jika terdapat fail binding.gyp dalam direktori akar pakej, npm akan menyusun arahan prapasang dengan node-gyp secara lalai.

"penyumbang": [...]
Jika terdapat fail AUTHORS dalam direktori akar pakej, npm akan memprosesnya baris demi baris dalam format Nama (url) secara lalai. Baris yang bermula dengan # dan ruang akan diabaikan.

nama

Medan paling penting dalam package.json ialah nama dan medan versi. Kesemuanya diperlukan dan tidak boleh dipasang tanpanya. Pengecam yang dibentuk mengikut nama dan versi bersama-sama diandaikan unik. Menukar pakej juga harus menukar versi.

nama ialah nama benda ini. Nota:

1 Jangan letakkan nod atau js dalam nama. Kerana anda menulis package.json ia diandaikan sebagai js, tetapi anda boleh menentukan enjin menggunakan medan "enjin" (lihat di bawah).
2. Nama ini akan digunakan sebagai sebahagian daripada URL, parameter baris arahan atau nama folder. Sebarang aksara bukan url-selamat tidak dibenarkan.
3. Nama ini boleh dihantar ke require() sebagai parameter, jadi ia harus pendek, tetapi juga jelas dalam maksud.
4. Sebelum anda jatuh cinta dengan nama anda, anda mungkin ingin menyemak daftar npm untuk melihat sama ada nama itu sudah digunakan. http://registry.npmjs.org/

versi

Medan paling penting dalam package.json ialah medan nama dan versi. Kesemuanya diperlukan dan tidak boleh dipasang tanpanya. Pengecam yang dibentuk mengikut nama dan versi bersama-sama diandaikan unik. Menukar pakej juga harus menukar versi.

versi mesti boleh dihuraikan oleh nod-semver, yang disertakan dalam kebergantungan npm. (Jika anda ingin menggunakannya sendiri, anda boleh melaksanakan npm install semver)

Untuk "nombor" atau "julat" yang tersedia lihat semver(7).

penerangan

Letakkan pengenalan, rentetan. Adalah mudah bagi yang kalah untuk mencari dalam carian npm.

kata kunci

Kata kunci, tatasusunan, rentetan. Ia juga mudah untuk orang yang kalah untuk mencari dalam carian npm.

halaman utama

URL laman web rasmi projek.

Nota: Ini tidak sama dengan "url". Jika anda meletakkan medan "url", pendaftaran akan menganggap ia adalah lompatan ke alamat yang anda terbitkan di tempat lain, dan kemudian memberitahu anda untuk tersesat.

Ya, persetankan saya, jangan bergurau.

pepijat

URL dan/atau alamat e-mel isu penyerahan projek anda. Ini berguna untuk diaosi yang mempunyai masalah.

Ia kelihatan seperti ini:

Salin kod Kod adalah seperti berikut:

{ "url" : "http://github.com/owner/project/issues"
, "email" : "project@hostname.com"
}

Anda boleh menentukan satu atau dua. Jika anda hanya mahu menyediakan url, maka tiada objek diperlukan, hanya rentetan.

Jika url disediakan, ia akan digunakan oleh arahan npm bugs.

lesen

Anda harus menyatakan lesen supaya orang ramai mengetahui hak dan sekatan penggunaan.

Cara paling mudah ialah, jika anda menggunakan lesen am seperti BSD atau MIT, anda hanya perlu nyatakan nama lesen, seperti ini:

Salin kod Kod adalah seperti berikut:

{ "lesen" : "BSD" }

Jika anda mempunyai syarat pelesenan yang lebih kompleks atau ingin memberikan butiran lanjut, anda boleh melakukan ini:
Salin kod Kod adalah seperti berikut:

"lesen" : [
{ "jenis" : "Lesen Saya"
, "url" : "http://github.com/owner/project/path/to/license"
}
]

Ia juga merupakan idea yang baik untuk menyediakan fail lesen dalam direktori akar.

medan orang: pengarang, penyumbang

Penulis adalah seorang. penyumbang adalah pelbagai orang. Orang ialah objek dengan medan nama, url pilihan dan medan e-mel, seperti ini:

Salin kod Kod adalah seperti berikut:

{ "nama" : "Barney Rubble"
, "email" : "b@rubble.com"
, "url" : "http://barnyrubble.tumblr.com/"
}

Atau anda boleh meletakkan semuanya ke dalam rentetan dan npm akan menghuraikannya untuk anda:
Salin kod Kod adalah seperti berikut:

"Barney Rubble (http://barnyrubble.tumblr.com/)

e-mel dan url adalah pilihan dalam kedua-dua bentuk.

Anda juga boleh menetapkan medan penyelenggara peringkat atas dalam maklumat pengguna npm anda.

fail

fail ialah tatasusunan yang mengandungi fail dalam projek. Jika folder dinamakan, fail dalam folder juga akan disertakan. (kecuali diabaikan oleh syarat lain)

Anda juga boleh menyediakan fail .npmignore supaya fail dikekalkan walaupun ia disertakan dalam medan fail. Malah, ia sama seperti .gitignore.

utama

Medan utama ialah ID modul, yang merupakan penunjuk kepada projek utama program anda. Iaitu, jika nama pakej anda ialah foo, dan pengguna memasangnya, dan kemudian memerlukan("foo"), maka objek eksport modul utama anda akan dikembalikan.

Ini sepatutnya menjadi ID modul berbanding dengan direktori akar.

Untuk kebanyakan modul, ia sangat masuk akal dan tiada yang lain.

bin

Banyak pakej mempunyai satu atau lebih fail boleh laku yang mereka mahu diletakkan dalam PATH. npm membolehkan ibu tidak perlu risau lagi (sebenarnya, ciri inilah yang menjadikan npm boleh laku).

Untuk menggunakan ciri ini, berikan medan bin dalam package.json peta daripada nama arahan ke lokasi fail. Semasa pemulaan, npm akan memautkannya kepada awalan/bin (pemulaan global) atau ./node_modules/.bin/ (pemulaan tempatan).

Sebagai contoh, npm mempunyai:

Salin kod Kod adalah seperti berikut:

{ "bin" : { "npm" : "./cli.js" } }

Jadi, apabila anda memulakan npm, ia akan mencipta symlink kepada skrip cli.js ke dalam /usr/local/bin/npm.

Jika anda hanya mempunyai satu fail boleh laku dengan nama yang sama dengan nama pakej. Kemudian anda hanya boleh menggunakan rentetan, seperti:

Salin kod Kod adalah seperti berikut:

{ "nama": "program saya"
, "versi": "1.2.5"
, "bin": "./path/to/program" }

Hasilnya sama seperti ini:

Salin kod Kod adalah seperti berikut:

{ "nama": "program saya"
, "versi": "1.2.5"
, "bin" : { "my-program" : "./path/to/program" } }

lelaki

Nyatakan satu fail atau tatasusunan fail untuk digunakan oleh program man.

Jika hanya satu fail disediakan, maka ia akan menjadi hasil man selepas pemulaan, tanpa mengira nama fail sebenar, seperti:

Salin kod Kod adalah seperti berikut:

{ "nama" : "foo"
, "versi" : "1.2.3"
, "description" : "Foo fooer yang dibungkus untuk fooing foos"
, "utama" : "foo.js"
, "lelaki" : "./man/doc.1"
}

Dengan cara ini, man foo boleh menggunakan fail ./man/doc.1.

Jika nama fail tidak bermula dengan nama pakej, maka ia akan diawali dengan yang berikut:

Salin kod Kod adalah seperti berikut:

{ "nama" : "foo"
, "versi" : "1.2.3"
, "description" : "Foo fooer yang dibungkus untuk fooing foos"
, "utama" : "foo.js"
, "lelaki" : [ "./man/foo.1", "./man/bar.1" ]
}

Fail akan dibuat untuk man foo dan man foo-bar.

Fail lelaki perlu diakhiri dengan nombor dan kemudian secara pilihan dimampatkan dengan akhiran .gz. Nombor menentukan bahagian lelaki mana fail dipasang.

Salin kod Kod adalah seperti berikut:

{ "nama" : "foo"
, "versi" : "1.2.3"
, "description" : "Foo fooer yang dibungkus untuk fooing foos"
, "utama" : "foo.js"
, "lelaki" : [ "./man/foo.1", "./man/foo.2" ]
}

akan dicipta untuk man foo dan man 2 foo.

direktori

Spesifikasi CommonJS Packages menerangkan beberapa cara anda boleh menggunakan directorieshash untuk menunjukkan struktur pakej. Jika anda melihat pada package.json npm, anda akan melihat bahawa terdapat direktori berlabel doc, lib dan man.

Maklumat ini boleh digunakan pada masa hadapan.

directories.lib

Beritahu mereka yang kalah di mana folder perpustakaan anda. Tiada apa yang istimewa tentang menggunakan folder lib pada masa ini, tetapi ia adalah maklumat meta yang penting.

direktori.bin

Jika anda menentukan direktori "bin", maka semua fail dalam folder itu akan digunakan sebagai medan "bin".

Jika anda telah menyatakan medan "bin", ini tidak akan memberi kesan.

direktori.lelaki

Folder penuh dengan halaman manual. Berhati-hati mencipta medan "lelaki".
Folder yang penuh dengan halaman manual Sugar untuk menjana tatasusunan "lelaki" oleh
berjalan di dalam folder.

direktori.doc

Letakkan fail markdown di sini. Akhirnya, ini akan ditunjukkan dengan baik, mungkin, suatu hari nanti.
Letakkan fail penurunan harga di sini Akhirnya, ini akan dipaparkan dengan baik,
mungkin, suatu hari nanti.

direktori.contoh

Letakkan skrip contoh anda di sini. Suatu hari nanti, ia mungkin muncul dengan cara yang bijak.

repositori

Nyatakan tempat kod anda harus disimpan. Ini berguna untuk mereka yang ingin menyumbang. Jika repositori git berada di github, arahan npm docs boleh mencari anda.

Lakukan ini:

Salin kod Kod adalah seperti berikut:

"repositori" :
{ "type" : "git"
, "url" : "http://github.com/isaacs/npm.git"
}
"repositori" :
{ "jenis" : "svn"
, "url" : "http://v8.googlecode.com/svn/trunk/"
}

URL tersebut hendaklah URL awam (walaupun baca sahaja) yang boleh diproses terus oleh program kawalan versi yang tidak diubah suai. Ia tidak sepatutnya menjadi halaman projek html. Kerana ia adalah untuk komputer untuk melihat.

skrip

"skrip" ialah objek cincang yang terdiri daripada arahan skrip, yang dilaksanakan semasa kitaran hayat pakej yang berbeza. Kuncinya ialah peristiwa kitaran hayat dan nilainya ialah arahan untuk dijalankan.

Lihat npm-scripts(7)

konfigurasi

Cincangan "config" boleh digunakan untuk mengkonfigurasi parameter merentas versi yang digunakan dalam skrip pakej. Dalam contoh, jika pakej mempunyai konfigurasi berikut:

Salin kod Kod adalah seperti berikut:

{ "nama" : "foo"
, "config" : { "port" : "8080" } }

Kemudian terdapat perintah "mula" yang merujuk pembolehubah persekitaran npm_package_config_port, dan pengguna boleh mengatasinya melalui set konfigurasi npm foo:port 8001.

Lihat npm-config(7) dan npm-scripts(7).

pergantungan

Kebergantungan ialah cincangan yang menentukan julat versi untuk set nama pakej. Julat versi ialah rentetan yang dipisahkan oleh satu atau lebih ruang. Ketergantungan juga boleh menggunakan tarball atau URL git.

Sila jangan letakkan kebergantungan ujian atau peralihan dalam dependencieshash. Lihat devDependencies di bawah.

Lihat semver(7) untuk butiran.

1.versi mestilah konsisten sepenuhnya dengan versi
2.>versi mestilah lebih besar daripada versi
3.>=versi Sama seperti di atas
4. 5.<=versi Sama seperti di atas
6.~versi adalah lebih kurang sama, lihat semver(7)
7.1.2.x 1.2.0, 1.2.1, dsb., tetapi tidak termasuk 1.3.0
8.http://... Lihat 'Bergantung pada URL' di bawah
9.* Semua
10."" Kosong, sama seperti *
11.version1 - version2 adalah sama dengan >=version1 <=version2.
12. julat1 || julat2 Pilih satu daripada dua.
13.git... Lihat di bawah 'Bergantung pada URL Git'
14.user/repo Lihat 'URL GitHub' di bawah
15. Sebagai contoh, yang berikut adalah sah:

Salin kod Kod adalah seperti berikut:

{ "pergantungan" :
{ "foo" : "1.0.0 - 2.9999.9999"
, "bar" : ">=1.0.2 <2.1.2"
, "baz" : ">1.0.2 <=2.3.4"
, "boo" : "2.0.1"
, "qux" : "<1.0.0 || >=2.3.1 <2.4.5 || >=2.5.2 <3.0.0"
, "asd" : "http://asdf.com/asdf.tar.gz"
, "til" : "~1.2"
, "bunian" : "~1.2.3"
, "dua" : "2.x"
, "thr" : "3.3.x"
}
}

URL Kebergantungan

Anda boleh menentukan URL tarball, yang akan dimuat turun dan dimulakan apabila pakej dimulakan.

Bergantung pada URL Git

URL Git boleh dalam bentuk berikut:

Salin kod Kod adalah seperti berikut:

git://github.com/user/project.git#commit-ish
git ssh://user@hostname:project.git#commit-ish
git ssh://user@hostname/project.git#commit-ish
git http://user@hostname/project/blah.git#commit-ish
git https://user@hostname/project/blah.git#commit-ish

commit-ish ialah sebarang tag, sha, atau cawangan yang boleh disemak oleh git. Lalai ialah induk.

URL GitHub

Selepas versi 1.1.65, anda hanya boleh menggunakan "user/foo-project" untuk merujuk url GitHub, seperti:

Salin kod Kod adalah seperti berikut:

{
"nama": "foo",
"versi": "0.0.0",
"pergantungan": {
"express": "visionmedia/express"
}
}

devDependencies

Jika seseorang bercadang untuk memuat turun dan menggunakan modul anda dalam program mereka, mereka mungkin tidak mahu atau perlu memuat turun dan membina rangka kerja ujian atau dokumentasi luaran yang anda gunakan.

Dalam kes ini, adalah lebih baik untuk menyenaraikan projek bergantung ini dalam cincang devDependencies.

Perkara ini akan dimulakan apabila pautan npm atau pemasangan npm dilaksanakan dalam direktori akar, dan boleh diurus seperti parameter konfigurasi npm yang lain. Lihat npm-config(7) untuk butiran.

Untuk langkah binaan bukan platform khusus, seperti menyusun CoffeeScript atau bahasa lain​​ke Javascript, gunakan skrip praterbit untuk melaksanakannya dan letakkannya dalam devDependency.

Contohnya:

Salin kod Kod adalah seperti berikut:

{ "nama": "etopia-waza",
"description": "pelbagai kopi buah yang menarik",
"versi": "1.2.3",
"devDependencies": {
"coffee-script": "~1.6.3"
},
"skrip": {
"prepublish": "coffee -o lib/ -c src/waza.coffee"
},
"utama": "lib/waza.js"
}

Skrip praterbit akan dijalankan sebelum diterbitkan, jadi pengguna tidak perlu memerlukannya sendiri untuk menyusunnya sebelum mereka boleh menggunakannya. Dan dalam mod pembangunan (seperti menjalankan npm install secara tempatan) skrip ini akan dijalankan untuk ujian yang lebih baik.

Pergantungan rakan sebaya

Dalam sesetengah senario, seperti apabila keperluan tidak diperlukan pada hos, anda ingin menunjukkan kunci keserasian pakej anda dengan alat hos atau pustaka. Ini biasanya digunakan untuk merujuk pemalam. Khususnya, modul anda mungkin mendedahkan antara muka khusus yang dijangka dan ditentukan oleh dokumen hos.

Contohnya:

Salin kod Kod adalah seperti berikut:

{
"nama": "teh-latte",
"versi": "1.3.5"
"PeerDependencies": {
"teh": "2.x"
}
}

Ini memastikan bahawa pakej anda hanya boleh dimulakan dengan versi 2.x teh. npm install tea-latte mungkin menghasilkan kebergantungan berikut
Salin kod Kod adalah seperti berikut:

├�� └�� teh@2.2.0


Percubaan untuk memulakan pemalam lain yang mempunyai kebergantungan yang bercanggah akan mengakibatkan ralat. Oleh itu, pastikan keperluan pemalam anda dikekang selemah mungkin tanpa menguncinya ke dalam versi tertentu.

Dengan mengandaikan hos ini mematuhi spesifikasi semver, hanya menukar versi utama pakej ini akan memecahkan pemalam anda. Oleh itu, jika anda telah menggunakan setiap versi 1.x dalam pakej, gunakan "^1.0" atau "1.x" untuk mewakilinya. Jika anda bergantung pada pengenalan ciri 1.5.2, gunakan ">= 1.5.2 < 2".

pergantungan dibundel

Satu set nama pakej yang akan disertakan apabila dikeluarkan.

Anda juga boleh mengejanya sebagai "bundleDependencies" (tiada d).

Pergantungan pilihan

Jika kebergantungan tersedia, tetapi anda mahu npm meneruskan pemula walaupun gagal dipasang, anda boleh meletakkannya dalam cincang pilihanDependencies. Ini ialah peta nama pakej kepada versi atau URL, sama seperti cincang kebergantungan. Ia hanya berjalan salah.

Mengendalikan kekurangan tanggungan juga merupakan tanggungjawab program anda. Contohnya, seperti ini:

Salin kod Kod adalah seperti berikut:

cuba {
var foo = memerlukan('foo')
var fooVersion = require('foo/package.json').version
} tangkap (er) {
foo = batal
}
jika ( notGoodFooVersion(fooVersion) ) {
foo = batal
}
// .. kemudian dalam program anda ..
jika (foo) {
foo.doFooThings()
}

optionalDependencies akan mengatasi item dengan nama yang sama dalam dependencies, jadi ia biasanya lebih baik daripada meletakkannya di satu tempat sahaja.

enjin

Anda boleh menentukan versi nod yang berfungsi:

Salin kod Kod adalah seperti berikut:

{ "enjin" : { "nod" : ">=0.10.3 <0.12" } }

Dan, seperti kebergantungan, jika anda tidak menentukan versi atau menentukan "*" sebagai versi, semua versi nod akan berfungsi.

Jika anda menentukan medan "enjin", maka npm akan memerlukan nod untuk berada di dalamnya. Jika "enjin" diabaikan, npm akan menganggap bahawa ia berfungsi pada nod.

Anda juga boleh menggunakan medan "enjin" untuk menentukan versi npm yang boleh memulakan program anda dengan lebih baik, seperti:

Salin kod Kod adalah seperti berikut:

{ "enjin" : { "npm" : "~1.0.20" } }

Ingat, medan ini hanya nilai yang disyorkan melainkan pengguna menetapkan bendera ketat enjin.

enjinTegas

Jika anda pasti modul anda tidak akan berjalan pada nod atau npm selain daripada versi yang anda tentukan, anda boleh menetapkan "engineStrict": true dalam fail package.json. Ia mengatasi tetapan ketat enjin pengguna.

Jangan lakukan ini melainkan anda sangat, sangat pasti. Jika cincang enjin anda terlalu ketat, anda boleh dengan mudah mendapat masalah. Pertimbangkan pilihan ini dengan teliti. Jika orang menyalahgunakannya, ia akan dialih keluar dalam versi npm akan datang.

os

Anda boleh menentukan sistem pengendalian yang modul anda patut jalankan:

Salin kod Kod adalah seperti berikut:

"os" : [ "darwin", "linux" ]

Anda juga boleh menggunakan senarai hitam dan bukannya senarai putih, cuma tambah "!" di hadapan nama:
Salin kod Kod adalah seperti berikut:

"os" : [ "!win32" ]

Sistem pengendalian menggunakan process.platform untuk mengesan.

Walaupun tiada sebab yang kukuh, ia menyokong kedua-dua senarai hitam dan senarai putih.

cpu

Jika kod anda hanya boleh dijalankan pada seni bina CPU tertentu, anda boleh menentukan satu:

Salin kod Kod adalah seperti berikut:

"cpu" : [ "x64", "ia32" ]

Sama seperti pilihan os, anda juga boleh menggodam seni bina:
Salin kod Kod adalah seperti berikut:

"cpu" : [ "!arm", "!mips" ]

Die CPU-Architektur wird mithilfe von Process.arch erkannt.

preferGlobal

Wenn es sich bei dem Paket in erster Linie um ein Befehlszeilenprogramm handelt, das global installiert werden muss, setzen Sie dies auf „true“, um Personen zu warnen, die es nur lokal installieren.

Es wird Benutzer nicht wirklich daran hindern, lokal zu installieren, aber es hilft, Missverständnisse zu vermeiden, wenn es nicht wie erwartet funktioniert.

privat

Wenn Sie „private“ auf „true“ setzen, wird npm es nicht veröffentlichen.

Dies ist eine Möglichkeit, eine versehentliche Freigabe privater Bibliotheken zu verhindern. Wenn Sie sicherstellen möchten, dass ein bestimmtes Paket nur in einer bestimmten Registrierung (z. B. einer internen Registrierung) veröffentlicht wird, überschreiben Sie den Veröffentlichungszeit-Konfigurationsparameter der Registrierung mit einer PublishConfighash-Beschreibung.

publishConfig

Dies ist eine Konfigurationssammlung, die zum Zeitpunkt der Veröffentlichung verwendet wird. Dies ist nützlich, wenn Sie ein Tag oder eine Registrierung einrichten möchten, um sicherzustellen, dass ein bestimmtes Paket nicht mit „lastest“ gekennzeichnet ist oder standardmäßig in der globalen öffentlichen Registrierung veröffentlicht wird.

Jede Konfiguration kann überschrieben werden, aber natürlich können nur „Tag“ und „Registrierung“ für Veröffentlichungszwecke relevant sein.

Eine Liste der Dinge, die überschrieben werden können, finden Sie unter npm-config(7).

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan