首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么“npm install git repo url”重写package-lock.json?

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

Stack Overflow用户
提问于 2020-04-04 03:47:46
回答 2查看 597关注 0票数 3

我在一个公共的GitHub repo中运行npm install,它在package-lock.json文件中的4.17.0处锁定了express,这是package-lock.json文件的正确行为。

然而,当我在一个空文件夹中执行npm install git+https://github.com/nabeel-nazir confiz/package.lock.master.git,然后用新版本的express创建的package-lock.json文件锁定在4.17.1。我知道在源package.json中有一个插入符号^,但是为什么这次源package-lock.json被忽略了呢?

我这里的问题是,当我在服务器上执行npm install git+https://github.com/nabeel-nazir confiz/package.lock.master.git时,它应该创建一个express锁定在4.17.0而不是4.17.1package-lock.json文件,因为repo上的源package-lock.json文件已经锁定了4.17.0上的express。

我有没有办法做到这一点,即npm install git+https://github.com/nabeel-nazir confiz/package.lock.master.git会考虑源package-lock.json文件,而不应该忽略它?

我使用以下版本:

npm version: 5.4.1

node version: 8.9.3

npm config get registry prints: https://registry.npmjs.org/

OS: Ubuntu 18.04

附注:我也用下面的代码尝试过npm install git+https://github.com/nabeel-nazir confiz/package.lock.master.git,但问题是相同的,即它将express锁定在4.17.1

npm version: 6.14.4

node version: 13.12.0

npm config get registry prints: https://registry.npmjs.org/

OS: Ubuntu 18.04

如果需要提供有关此问题的更多信息,请发表评论。

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2020-04-04 05:25:21

npm install xxx每次都会生成一个新的锁文件。(实际上它只是忽略锁文件,并在每次执行时生成)

另一方面,npm ci是基于锁文件而不是package.json来安装软件包的命令

票数 0
EN

Stack Overflow用户

发布于 2020-04-04 18:20:30

去掉胡萝卜^符号。那么它将保持锁定在4.17.0。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61019398

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档