package.json相关疑惑总结
語義版本控制(node-semver)
X.Y.Z,主要版本X,次要版本Y,補丁Z
X:代表一個破壞兼容性的大變化;
Y:表示不會破壞任何內容的新功能;
Z:表示不會破壞任何內容的錯誤修復;
?
package.json中版本控制
"express":"^4.15.4"——表示至少應該使用版本4.15.4,但任何高于此版本的版本都可以,只要它們具有相同的主要版本(4.x.x)。PS:如果大版本號為0,則^與~相同,因為此時處于開發階段,即使是次要版本號變動,也可能帶來程序的不兼容。
"express":"~4.15.4"——表示安裝時不能改變主要版本和次要版本號(4.15.x)。
"express":"4.15.4"——表示安裝的指定版本號(4.15.4)。
"express":"latest"——表示安裝最新版本。
?
package-lock.json(npm 5.x.x新增,可禁用)優先級迭代
npm 5.0.x:不管package.json怎么變,npm install?時都會根據package-lock.json文件下載;
npm 5.1.x:npm install 會無視package-lock.json文件,去下載最新的包;
npm 5.4.2后:如果改了package.json,且package.json和package-lock.json文件不同,那么npm install 時npm會根據package中的版本號以及語義含義去下載最新的包,并更新至lock。如果兩者是同一狀態,那么npm install?都會根據lock下載,不會理會package實際包的版本是否有更新。
?
package-lock.json中各參數含義
"@hui-pro/empty": {"version": "1.1.0","resolved": "http://...","integrity": "sha1-D2egR6O4AeJh31PAr0KIyJJsciQ=","requires": {"@hui-pro/locale": "^1.1.0","@hui-pro/theme": "^1.1.0","@hui-pro/utils": "^1.1.0"},"dependencies": {"@hui-pro/locale": {"version": "1.1.0","resolved": "http://...","integrity": "sha1-ZzHcgwh/q5CqslQadrXzhzQc7vQ=","requires": {"deepmerge": "^1.5.2"}},"@hui-pro/theme": {"version": "1.1.0","resolved": "http://...","integrity": "sha1-+buQbn8OnWU32dIdNg6v9g6cUrU=","requires": {"sass": "^1.19.0","sass-loader": "^7.1.0"}},"@hui-pro/utils": {"version": "1.1.0","resolved": "http://...","integrity": "sha1-V862xMe+H5G751C3CpT3bGIFr1k=","requires": {"h-jsencrypt": "^1.0.1","moment": "^2.24.0","qs": "^6.5.2","resize-observer-polyfill": "^1.5.1"}}}}version:應安裝的特定版本;
resolved:模塊的位置(URI);
integrity:驗證模塊完整性的哈希;
requires:它依賴的包列表;
dependencies:依賴包詳情列表;
?
參考資料
https://segmentfault.com/a/1190000017239545
?
轉載于:https://www.cnblogs.com/dreamsqin/p/10938767.html
總結
以上是生活随笔為你收集整理的package.json相关疑惑总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python-体育竞技模拟
- 下一篇: js new关键字