版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
第package.json管理依賴包版本詳解目錄npm版本號定義package.json怎么識別依賴版本不要太相信npm包的版本號dependencies、devDependencies與peerDependenciesdependenciesdevDependenciespeerDependencies參考
npm版本號定義
版本格式:X.Y.Z[-string]其含義為:
X:主版本號Y:次版本號Z:修正版本號string:先行版本號或版本編譯信息
舉個例子:
6.3.2-alpha的含義為:
主版本號6,有6次不可向下兼容的更新迭代。
次版本號3,有3次小的功能迭代。6.*.*=6.3.2的依賴聲明,都可以安裝此新包。
修正版本號2,有2次bug修改或其他非重大功能的修改。6.*.*=6.3.2的依賴聲明,都可以安裝此新包。
先行版本號alpha,表示處理試驗階段。
擴展閱讀:語義化版本2.0.0
package.json怎么識別依賴版本
將按下述代碼進行闡釋:
"vue":"~2.5.22",
"vue-class-component":"^6.0.0",
"vue-router":"3.0.1",
"express":"latest",
"mongoose":"*",
符號^:鎖定主版本,可更新次版本號、修正版本號和先行版本號例如vue-class-component:^6.0.0,安裝依賴時,可以安裝符合6.*.*的任意版本,只要主版本號是6即可。符號~:鎖定主版本號和次版本號,可更新修正版本號和先行版本號例如vue:~2.5.22,安裝依賴時,可以安裝符合2.5.*的任意版本??辗枺烘i定所有版本號例如vue-router:3.0.1,只能安裝版本為3.0.1的依賴包。符號*:定義某個版本號范圍例如vue-router:3.0.*,可以安裝3.0固定的任意版本,比如3.0.1、3.0.2。latest:安裝最新的穩(wěn)定版本
例如express:latest,可以安裝4.18.1(2025.06.13最新版本)。
*:安裝最新發(fā)布的版本,不一定是穩(wěn)定版本
例如mongoose:*,可以安裝6.0.0-rc2、3.9.7等。
GitURL:使用Git上發(fā)布的包
引用格式:protocol://[user[:password]@]hostname[:port][:][/]path[#commit-ish|#semver:semver]
"test":"git+ssh://git@:npm/cli.git#v1.0.27"
擴展閱讀:npmdocs-dependencies
不要太相信npm包的版本號
如題,這個是血的教訓換來的經(jīng)驗。
筆者在使用system.js時,使用的版本限制是:system.js:^6.3.2。
在安裝依賴的時候,意外安裝了6.3.2的版本,導致項目運行出錯。
原因就是system.js作者,沒有按照semver規(guī)范,進行版本號命名,導致筆者的項目,引入了不可向下兼容的更新,進而使項目運行出錯。
dependencies、devDependencies與peerDependencies
dependencies
生產(chǎn)環(huán)境中使用到的依賴,統(tǒng)一安裝在dependencies下。
舉個例子:
"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"
上述代碼,是筆者做的cli工具包的package.json中的片段。
shelljs用于操作文件,如果改在devDependencies聲明,則用戶安裝當前工具包后,運行會報錯。
因為devDependencies字段聲明的依賴,在npminstall工具包時,是不會安裝的。
必須在dependencies字段中聲明,才會被安裝。
devDependencies
生產(chǎn)環(huán)境不需要使用的依賴,都需要安裝在peerDependencies下。
因為生產(chǎn)環(huán)境下,是不會安裝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"
上述代碼,是筆者做的cli工具包的package.json中的片段。
commitizen是筆者用于規(guī)范Git提交規(guī)范的依賴包,只在開發(fā)環(huán)境中使用,所以在devDependencies中聲明。
peerDependencies
當開發(fā)一些插件和工具包時,對使用方的運行環(huán)境的依賴包版本有要求,可以使用peerDependencies字段進行聲明。
舉個例子:
{
"name":"tea-latte",
"version":"1.3.5",
"peerDependencies":{
"tea":"2.x"
當前工具tea-latte,依賴tea包。而且,要求tea包是主版本2。
當不滿足要求時,控制臺會進行報錯處理。
注意
npmv7版本,peerDependencies會默認安裝。
npmv3到
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 門診護理倫理題庫及答案
- 春季防困安全專項培訓會課件
- 邏輯學試題及答案
- 六年級下冊數(shù)學月考試卷及答案
- 春季皮膚護理培訓
- 春季開學安全教育課件
- 遴選公務員面試真題及答案
- 春季安全理論培訓總結(jié)課件
- 藥品使用安全課件圖片高清
- 痛風診治進展
- 2026年中國數(shù)聯(lián)物流備考題庫有限公司招聘備考題庫及參考答案詳解一套
- 四川省樂山市2026屆高一上數(shù)學期末質(zhì)量檢測試題含解析
- 2025年天津中德應用技術(shù)大學馬克思主義基本原理概論期末考試真題匯編
- 2025青海省交通控股集團有限公司面向社會公開招聘70人筆試歷年參考題庫附帶答案詳解
- 韓語興趣愛好課件
- 青霉素過敏性休克處理
- 油漆班組安全晨會(班前會)
- 消費類半固態(tài)電池項目可行性研究報告
- 山東省濟南市2024年1月高二上學期學情期末檢測英語試題含解析
- 口腔門診醫(yī)療質(zhì)控培訓
- (正式版)JBT 9229-2024 剪叉式升降工作平臺
評論
0/150
提交評論