npm中package-lock.json的作用:npm install安裝時使用


簡單理解: XYZ 的格式

對應為: 主版本號.次版本號.修訂號,版本號遞增規則如下:

主版本號:當你做了不兼容的 API 修改,

次版本號:當你做了向下兼容的功能性新增,

修訂號:當你做了向下兼容的問題修正。

 

  假設我們創建了一個新項目,它將使用express。 在運行npm init之后,在撰寫本項目時,最新的express版本是4.15.4。 (默認情況下,npm 將安裝最新版本)

因此在package.json中,"express":"^ 4.15.4"被添加作為依賴項。 假設明天,express的維護者會發布一個 bug 修復,所以最新版本變成了4.15.5。 然后,如果有人想要為我的項目做貢獻,他們會克隆它,然后運行 npm install, 因為4.15.5是一個更高版本的主要版本,這是為他們安裝的。 我們都有express依賴,但我們有兩個不同的版本。 理論上,它們應該還是兼容的,但是也許這個 bug 會影響我們正在使用的功能,而我們的應用程序在使用Express版本4.15.4與4.15.5進行比較時會產生不同的結果.

  而package-lock.json的作用就是用來保證我們的應用程序依賴之間的關系是一致的, 兼容的.

 

  當不存在package-lock.json文件時,使用npm install時,會自動生成這個文件。當存在這個文件時,使用npm install安裝,會安裝package-lock.json里指定版本的插件,而且相比沒有package-lock.json文件時,安裝速度會快很多。因為package-lock.json文件里已經存在插件的版本、下載地址、整個node_modules的結構等信息。

  當存在package-lock.json文件時,每次npm install安裝就會安裝package-lock.json里對應插件的版本。這樣同一份package-lock.json文件,大家安裝的插件版本一致。

  如果某個插件版本變更。又不想刪除package-lock.json文件,重新生成。方法是:npm install plugin@version,及重新安裝這個插件,並指定插件的版本,這樣,package.json和package-lock.json會自動更新。當然,也可以直接修改package-lock.json文件,這樣npm install時,也會安裝修改后的版本。但是如果只修改package.json,不修改package-lock.json,npm install還是會安裝package-lock.json里的插件版本。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM