我在一个公共的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.1的package-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
如果需要提供有关此问题的更多信息,请发表评论。
谢谢。
发布于 2020-04-04 05:25:21
npm install xxx每次都会生成一个新的锁文件。(实际上它只是忽略锁文件,并在每次执行时生成)
另一方面,npm ci是基于锁文件而不是package.json来安装软件包的命令
发布于 2020-04-04 18:20:30
去掉胡萝卜^符号。那么它将保持锁定在4.17.0。
https://stackoverflow.com/questions/61019398
复制相似问题