您好,登錄后才能下訂單哦!
這篇文章主要介紹了package.json管理依賴包版本實例分析的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇package.json管理依賴包版本實例分析文章都會有所收獲,下面我們一起來看看吧。
版本格式: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
將按下述代碼進行闡釋:
"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.*
的任意版本。
空符號:鎖定所有版本號
例如"vue-router": "3.0.1"
,只能安裝版本為3.0.1
的依賴包。
符號*
:定義某個版本號范圍
例如vue-router": "3.0.*"
,可以安裝3.0
固定的任意版本,比如3.0.1
、3.0.2
。
latest
:安裝最新的穩定版本
例如"express": "latest"
,可以安裝4.18.1
(2022.06.13最新版本)。
*
:安裝最新發布的版本,不一定是穩定版本
例如"mongoose": "*"
,可以安裝6.0.0-rc2
、3.9.7
等。
Git URL
:使用Git上發布的包
引用格式: <protocol>://[<user>[:<password>]@]<hostname>[:<port>][:][/]<path>[#<commit-ish> | #semver:<semver>]
"test": "git+ssh://git@github.com:npm/cli.git#v1.0.27"
如題,這個是血的教訓換來的經驗。
筆者在使用system.js
時,使用的版本限制是:system.js: "^6.3.2"
。
在安裝依賴的時候,意外安裝了> 6.3.2
的版本,導致項目運行出錯。
原因就是system.js
作者,沒有按照semver
規范,進行版本號命名,導致筆者的項目,引入了不可向下兼容的更新,進而使項目運行出錯。
生產環境中使用到的依賴,統一安裝在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
字段聲明的依賴,在npm install 工具包
時,是不會安裝的。必須在dependencies
字段中聲明,才會被安裝。
生產環境不需要使用的依賴,都需要安裝在peerDependencies
下。
因為生產環境下,是不會安裝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
是筆者用于規范Git
提交規范的依賴包,只在開發環境中使用,所以在devDependencies
中聲明。
當開發一些插件和工具包時,對使用方的運行環境的依賴包版本有要求,可以使用peerDependencies
字段進行聲明。
舉個例子:
{ "name": "tea-latte", "version": "1.3.5", "peerDependencies": { "tea": "2.x" } }
當前工具tea-latte
,依賴tea
包。而且,要求tea
包是主版本2。
當不滿足要求時,控制臺會進行報錯處理。
注意
npm v7版本, peerDependencies會默認安裝。
npm v3 到 npm v6版本, peerDependencies不會自動安裝。
關于“package.json管理依賴包版本實例分析”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“package.json管理依賴包版本實例分析”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。