node.js - 为什么 “npm install git repo url”会重写package-lock.json?

标签 node.js npm node-modules

我正在公共(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/

相关文章:

javascript - Node JS Promise 的问题

node.js - Nuxt run dev fatal error ,状态码 500

node.js - 通过 consolidate.js 与 Swig 一起使用 Node.js Express 3.x 模板继承时出现问题

javascript - 制作一个接受或不接受参数的 Node.js 模块,并返回适当的函数/对象

node-modules - 如何安装节点模块但仅提交相关样式

angular - npm types 或 typings 或 @type 或什么?

javascript - Sequelize连接错误

node.js - VS Code 集成终端抛出 `Cannot find module` & `nvm is not compatible with the npm config "前缀”选项`

reactjs - react - 运行开发服务器

npm - `npm update` 和 `remove package-lock.json` 加上 `npm install` 之间的区别?