Mari kita bincangkan tentang cara menggunakan package.json untuk pengurusan versi pakej bergantung

青灯夜游
Lepaskan: 2022-08-09 15:08:49
ke hadapan
2731 orang telah melayarinya

Artikel ini bercakap tentang cara menggunakan package.json untuk mengurus versi pakej bergantung dalam projek hadapan sebenar. Apakah kesan peraturan yang berbeza terhadap pengurusan pergantungan?

Mari kita bincangkan tentang cara menggunakan package.json untuk pengurusan versi pakej bergantung

definisi nombor versi npm

Format versi: X.Y.Z[-string]
Maksudnya ialah:

  • X: nombor versi utama
  • Y: nombor versi kecil
  • Z: nombor versi disemak
  • rentetan: nombor versi awal atau maklumat kompilasi versi

Contohnya:

6.3.2-alpha bermaksud:

  • Versi utama nombor 6, terdapat 6 lelaran kemas kini yang tidak serasi ke belakang.

  • Versi kecil nombor 3, dengan 3 lelaran fungsi kecil. 6.*.*

  • Versi nombor 2 yang disemak, dengan 2 pembetulan pepijat atau perubahan ciri bukan utama yang lain. 6.*.*

  • Nombor versi lanjutan alpha, menunjukkan peringkat percubaan pemprosesan.

Bacaan lanjutan: Versi Semantik 2.0.0

Cara mengenal pasti versi pergantungan dalam package.json

akan ditafsirkan seperti berikut:

"vue": "~2.5.22",
"vue-class-component": "^6.0.0",
"vue-router": "3.0.1",
"express": "latest",
"mongoose": "*",
Salin selepas log masuk
  • Simbol^: mengunci versi major, dan boleh mengemas kini nombor versi minor, nombor versi disemak dan lanjutan nombor versi

    Sebagai contoh, "vue-class-component": "^6.0.0", apabila memasang kebergantungan, anda boleh memasang mana-mana versi yang mematuhi 6.*.*, asalkan nombor versi utama ialah 6.

  • Simbol ~: Kunci nombor versi utama dan nombor versi minor, dan kemas kini nombor versi yang disemak dan nombor versi sebelumnya

    Contohnya, "vue": "~2.5.22", apabila memasang dependensi, anda boleh memasang mana-mana versi yang mematuhi 2.5.*.

  • 空符号: Kunci semua nombor versi

    , seperti "vue-router": "3.0.1", hanya pakej bergantung dengan versi 3.0.1 boleh dipasang .

  • 符号*: Tentukan julat nombor versi tertentu

    Contohnya, vue-router": "3.0.*" boleh memasang mana-mana versi yang ditetapkan oleh 3.0 , seperti 3.0.1, 3.0.2.

  • latest: Pasang versi stabil terkini

Mari kita bincangkan tentang cara menggunakan package.json untuk pengurusan versi pakej bergantung

  • Sebagai contoh, "express": "latest", anda boleh memasang 4.18.1 (versi terkini 2022.06.13).

  • *: Pasang versi keluaran terkini, tidak semestinya versi stabil

Mari kita bincangkan tentang cara menggunakan package.json untuk pengurusan versi pakej bergantung

  • Sebagai contoh, "mongoose": "*", anda boleh memasang 6.0.0-rc2, 3.9.7, dsb.

  • Git URL: Gunakan pakej yang diterbitkan pada Git

    Format rujukan: <protocol>://[<user>[:<password>]@]<hostname>[:<port>][:][/]<path>[#<commit-ish> | #semver:<semver>]</semver></commit-ish></path></port></hostname></password></user></protocol>

"test": "git+ssh://git@github.com:npm/cli.git#v1.0.27"
Salin selepas log masuk

sambungan Baca: dokumen npm - dependencies

Jangan terlalu mempercayai nombor versi pakej npm!

Seperti tajuknya, inilah pengalaman yang diperolehi melalui pengajaran darah.

Apabila pengarang menggunakan system.js, sekatan versi yang digunakan ialah: system.js: "^6.3.2".

Apabila memasang kebergantungan, versi > 6.3.2 telah dipasang secara tidak sengaja, menyebabkan ralat pengendalian projek.

Sebabnya ialah pengarang system.js tidak menamakan nombor versi mengikut spesifikasi semver, yang mengakibatkan projek pengarang memperkenalkan kemas kini yang tidak serasi dengan , yang menyebabkan projek itu berjalan dengan tidak betul .

pergantungan, devDependencies dan peerDependencies

dependencies

Pergantungan yang digunakan dalam persekitaran pengeluaran dipasang secara seragam dalam dependencies Bawah .

Contohnya:

"dependencies": {
	"chalk": "^2.4.2",
	"commander": "^3.0.0",
	"fs-extra": "^8.1.0",
	"inquirer": "^6.5.0",
	"mem-fs": "^1.1.3",
	"mem-fs-editor": "^6.0.0",
	"shelljs": "^0.8.3"
}
Salin selepas log masuk

Kod di atas ialah serpihan cli toolkit yang dibuat oleh pengarang. package.json
digunakan untuk mengendalikan fail Jika ia diisytiharkan dalam shelljs, ralat akan dilaporkan selepas pengguna memasang pakej alat semasa. devDependenciesOleh kerana kebergantungan yang diisytiharkan dalam medan
tidak akan dipasang apabila devDependencies digunakan. Mesti diisytiharkan dalam medan npm install 工具包 untuk dipasang. dependencies

devDependencies

生产环境不需要使用的依赖,都需要安装在devDependencies下。
因为生产环境下,是不会安装devDependencies字段下的依赖的。

举个例子:

"devDependencies": {
	"@commitlint/cli": "^8.1.0",
	"@commitlint/config-conventional": "^8.1.0",
	"commitizen": "^4.0.3",
	"commitlint-config-cz": "^0.12.1",
	"cz-customizable": "^6.2.0",
	"standard-version": "^7.0.0"
}
Salin selepas log masuk

上述代码,是笔者做的cli工具包的package.json中的片段。
commitizen是笔者用于规范Git提交规范的依赖包,只在开发环境中使用,所以在devDependencies中声明。

peerDependencies

当开发一些插件和工具包时,对使用方的运行环境的依赖包版本有要求,可以使用peerDependencies字段进行声明。

举个例子:

{
  "name": "tea-latte",
  "version": "1.3.5",
  "peerDependencies": {
    "tea": "2.x"
  }
}
Salin selepas log masuk

当前工具tea-latte,依赖tea包。而且,要求tea包是主版本2。

当不满足要求时,控制台会进行报错处理。

注意
npm v7版本, peerDependencies会默认安装。
npm  v3 到 npm v6版本, peerDependencies不会自动安装。

更多node相关知识,请访问:nodejs 教程

Atas ialah kandungan terperinci Mari kita bincangkan tentang cara menggunakan package.json untuk pengurusan versi pakej bergantung. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:juejin.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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!