我正在公共(public) GitHub 中运行 npm install
repo并且它在 package-lock.json
文件中将 express 锁定在 4.17.0
这是 package-lock.json
文件的正确行为.
但是,当我在空文件夹中执行 npm install git+https://github.com/nabeel-nazir confiz/package.lock.master.git
时,然后是 package-lock.json使用新版 express 创建的文件锁定在 4.17.1
。我知道源代码中有一个插入符号 ^
package.json但为什么来源package-lock.json这次被忽略了?
我的问题是,当我在服务器上执行 npm install git+https://github.com/nabeel-nazir confiz/package.lock.master.git
时,它应该创建一个 package-lock.json
文件,express 锁定在 4.17.0
而不是 4.17.1
因为来源 package-lock.json repo 上的文件已将 express 锁定在4.17.0。
我有什么办法可以实现这一点,即 npm install git+https://github.com/nabeel-nazir confiz/package.lock.master.git
将考虑来源 package-lock.json文件,不应忽略它?
我正在使用以下版本:
npm 版本:5.4.1
Node 版本:8.9.3
npm config 获取注册表打印:https://registry.npmjs.org/
操作系统:Ubuntu 18.04
边注:
我也尝试使用 npm install git+https://github.com/nabeel-nazir confiz/package.lock.master.git
进行以下操作,但问题是相同的,即它将 express 锁定在 4.17.1
npm 版本:6.14.4
Node 版本:13.12.0
npm config 获取注册表打印:https://registry.npmjs.org/
操作系统:Ubuntu 18.04
如果需要提供有关此问题的更多信息,请发表评论。
谢谢。
最佳答案
npm install xxx
每次都会生成一个新的锁文件。 (实际上它只是忽略了锁文件并在每次执行时生成)
npm ci
另一方面,是基于锁定文件而不是 package.json
关于node.js - 为什么 “npm install git repo url”会重写package-lock.json?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61019398/