我在OSX El Capitan 10.11.6上使用npm 5.6.0和节点v6.9.5。
场景:我有一个nodejs项目,在每次npm安装后按预期创建 package-lock.json 。该项目(包括 package-lock.json )被检入存储库,然后克隆到不同的位置(相同的机器,相同的操作系统,相同的npm和节点版本)。
问题:但是,这次启动npm install时, package-lock.json 在依赖顺序方面有所不同。
背景:现在这通常不会有问题,但我需要计算git pre-commit挂钩上所有文件的校验和,以便在应用中发出信号,该项目有从存储库克隆并且希望将 package-lock.json 包含在该校验和中时未进行更改。
因此:
工作文件夹: - > npm install - > package-lock.json - >校验和 - > ABCD1234 - >承诺与推 克隆文件夹:clone - > npm install - > package-lock.json - >校验和 - > 9876EFGH
唯一的区别(在OS X上使用filemerge工具)是 package-lock.json 文件中一个依赖项的不同顺序,每个其他文件完全相同。
两个 package-lock.json 文件不应该完全相同吗?或者我错过了一个特定的npm概念并不能保证这一点?
感谢您的任何帮助/提示,谢谢!
(通常我会将 package-lock.json 作为代码附加但是这个文件太长所以我会提供实际差异的截图)
答案 0 :(得分:0)
如果要确定或更改package-lock.json中的内容,请使用npm install
,但是(自npm 5.7.1起)如果要确保获取的内容完全相同,请使用npm ci
。提供的package-lock.json,请使用{{1}}