我在 OSX El Capitan 10.11.6 上使用 npm 5.6.0 和 node v6.9.5。
场景:我有一个 nodejs 项目,其中package-lock.json在每个 npm 安装后按预期创建。该项目,包括package-lock.json,被检入存储库,然后克隆到不同的位置(相同的机器,相同的操作系统,相同的 npm 和节点版本)。
问题:但是,这次启动 npm install 时,package-lock.json的依赖顺序不同。
背景:现在这通常不会成为问题,但我需要计算 git pre-commit 挂钩上所有文件的校验和,以在应用程序中发出信号,表明从存储库克隆项目时没有更改并希望将package-lock.json 包含在该校验和中。
所以:
工作文件夹:-> npm install -> package-lock.json -> checksum -> ABCD1234 -> commit & push 克隆文件夹:clone -> npm install -> package-lock.json -> checksum -> 9876EFGH
唯一的区别(在 OS X 上使用 filemerge 工具)是package-lock.json文件中一个依赖项的顺序不同,其他每个文件都完全相同。
两个package-lock.json文件不应该完全一样吗?还是我错过了一个不能保证的特定 npm 概念?
任何帮助/提示表示赞赏,谢谢!
(通常我会将package-lock.json附加为代码,但是这个文件太长,所以我将提供实际差异的屏幕截图)