【问题标题】:after clone: npm install produces different package-lock file克隆后: npm install 产生不同的包锁定文件
【发布时间】: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


【解决方案1】:

如果您想确定或更改 package-lock.json 中的内容,请使用 npm install,但是(自 npm 5.7.1 起)如果您想确保获得所提供的内容package-lock.json,使用npm ci

https://docs.npmjs.com/cli/ci.html

【讨论】:

    猜你喜欢
    • 2023-03-21
    • 2018-04-30
    • 2013-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-21
    • 1970-01-01
    相关资源
    最近更新 更多