克隆后:npm安装产生不同的包锁文件。

问题描述 投票:2回答:1

我在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 作为代码,但是这个文件太长了,所以我将提供一个实际差异的截图)

diff of *package-lock.json* - only differences

node.js macos npm diff package-lock.json
1个回答
0
投票

如果你想确定或改变package-lock.json中的内容,使用 npm install但(从npm 5.7.1开始)如果你想确保你得到的是所提供的package-lock.json中的内容,可以使用 npm ci

https:/docs.npmjs.comclici.html。

© www.soinside.com 2019 - 2024. All rights reserved.