我在OSX El Capitan 10.11.6上使用npm 5.6.0和node v6.9.5。
场景: 我有一个nodejs项目,其中一个 package-lock.json 在每次安装完npm后都会如期创建。该项目,包括 package-lock.json在检查到一个仓库后,再克隆到不同的位置(同一台机器,同一操作系统,同一npm & node版本)。
问题: 但是,这次在启动npm安装时,却发现 package-lock.json 在依赖的顺序上是不同的。
背景: 现在,这通常不会是一个问题,但我需要在git预提交钩子上计算所有文件的校验和,以便在应用程序中发出信号,表明项目在从版本库克隆时没有被修改,并希望包括 package-lock.json 进入该校验和。
因此。
工作文件夹: -> npm install -> 包锁.json -> checksum -> ABCD1234 -> commit & pushcloned folder: clone -> npm install -> 包锁.json -> checksum -> 9876EFGH
和唯一的区别(在OS X上使用文件合并工具)是在 package-lock.json 文件,其他每一个文件都是一模一样的。
这两个 package-lock.json 文件是完全一样的?还是我错过了一个特殊的npm概念,不能保证这一点?
任何帮助提示都是非常感激的,谢谢!
(通常我会附上 package-lock.json 作为代码,但是这个文件太长了,所以我将提供一个实际差异的截图)
如果你想确定或改变package-lock.json中的内容,使用 npm install
但(从npm 5.7.1开始)如果你想确保你得到的是所提供的package-lock.json中的内容,可以使用 npm ci