package-lock.json和package.json區別


package.json里面定義的是版本范圍(比如^1.0.0),具體跑npm install的時候安的什么版本,要解析后才能決定,這里面定義的依賴關系樹,可以稱之為邏輯樹(logical tree)。

node_modules文件夾下才是npm實際安裝的確定版本的東西,這里面的文件夾結構我們可以稱之為物理樹(physical tree)。

安裝過程中有一些去重算法,所以你會發現邏輯樹結構和物理樹結構不完全一樣。

package-lock.json可以理解成對結合了邏輯樹和物理樹的一個快照(snapshot),里面有明確的各依賴版本號,實際安裝的結構,也有邏輯樹的結構。

其最大的好處就是能獲得可重復的構建(repeatable build),當你在CI(持續集成)上重復build的時候,得到的artifact是一樣的,因為依賴的版本都被鎖住了。在npm5以后,其內容和npm-shrinkwrap.json一模一樣。

這些在npm官網文檔都有詳細解釋。


免責聲明!

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



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