【发布时间】:2020-10-08 19:45:36
【问题描述】:
我相信我了解npm i 的工作原理,将package.json 文件与dependencies 和这些库的版本一起使用。我知道package-lock.json 是该构建的输出,特定版本在树下。未来npm i 将使用此锁定文件中指定的版本。太好了!
我当前的问题是当我们删除package-lock.json 文件时,npm i 拉下库的最新版本,忽略package.json 中指定的版本!为什么要这么做?
我们有几个库正在这样做,但在我们的新版本中造成严重破坏的是:"react-lazyload": "^2.6.2",。当锁定文件被删除时,它会下载2.6.8,这对我们的 UI 进行了重大更改。为什么npm会抢到最新的?
我检查了锁定文件,这是整个库中唯一使用它的实例,没有其他库请求新版本。
顺便说一句,这似乎只发生在我们的 Jenkins 服务器上,部署了我们所有的代码,它与我们的开发机器运行相同版本的 Node/npm:
node -v
v10.16.3
npm -v
6.9.0
【问题讨论】:
标签: jenkins npm npm-install package.json package-lock.json