npm學習(十一)之package-lock.json


package-lock.json

描述

對於npm修改node_modules樹或package.json的任何操作,都會自動生成package.json,它描述生成的確切樹,以便后續安裝能夠生成相同的樹,而不管中間依賴項更新如何

此文件擬提交至來源資料庫,並可作以下用途:

  • 描述依賴關系樹的單一表示形式,以確保隊友、部署和持續集成能夠安裝完全相同的依賴關系。
  • 為用戶提供一種工具,讓他們可以“穿越”到node_modules以前的狀態,而不必提交目錄本身。
  • 通過可讀的源代碼控制差異,提高樹更改的可視性。
  • 並通過允許npm跳過先前安裝包的重復元數據解析來優化安裝過程。

關於package-lock.json的一個關鍵細節是它是不能發布的,如果在除toplevel包之外的任何地方發現它,它將被忽略。它與npm-shrinkwrap.json共享一種格式,本質上是相同的文件,但允許發布。除非部署CLI工具或使用發布過程來生成生產包,否則不建議這樣做。

如果package-lock.json和npm-shrinkwrap.json存在於包的根目錄中,package-lock.json將完全被忽略。

文件格式

name(名字)

package-lock.json中包的名字必須匹配package.json中的內容。

version(版本)

package-lock.json中包的名字必須匹配package.json中的內容。

lockfileVersion

整數版本,從1開始,該文檔的版本號為1,在生成這個package-lock.json時使用了該文檔的語義。

packageIntegrity

這是從package.json中創建的子資源完整性值。不應該對package.json進行預處理。子資源完整性字符串可以由ssri之類的模塊生成。

preserveSymlinks

指示安裝完成時啟用了環境變量NODE_PRESERVE_SYMLINKS。安裝程序應該堅持此屬性的值與環境變量匹配。

dependencies(依賴關系)

包名到依賴項對象的映射。依賴對象具有以下屬性:

  • version:版本
  • integrity:這是該資源的標准子資源完整性

  • resolved:來源

  • bundled

  • dev

  • optional:可選依賴項

  • requires:依賴包

參考

npm package-lock.json


免責聲明!

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



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