【发布时间】:2018-01-05 14:06:49
【问题描述】:
我在 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 -> 校验和 -> ABCD1234 -> 提交和推送 克隆文件夹:clone -> npm install -> package-lock.json -> checksum -> 9876EFGH
唯一的区别(在 OS X 上使用 filemerge 工具)是 package-lock.json 文件中单个依赖项的顺序不同,其他文件完全相同。
这两个package-lock.json文件不应该完全一样吗?还是我错过了一个不能保证这一点的特定 npm 概念?
感谢任何帮助/提示,谢谢!
(通常我会将 package-lock.json 附加为代码,但此文件太长,因此我将提供实际差异的屏幕截图)
【问题讨论】:
-
欢迎来到 NPM。
标签: node.js macos npm diff package-lock.json