使用 package-lock.json 更新中间 npm 依赖项
Posted
技术标签:
【中文标题】使用 package-lock.json 更新中间 npm 依赖项【英文标题】:Update intermediary npm dependencies with package-lock.json 【发布时间】:2018-04-19 02:09:51 【问题描述】:在存在package-lock.json file 的情况下,使用 npm 更新中间依赖项的正确方法是什么?
例如:
$ npm outdated --depth=1 eslint
Package Current Wanted Latest Location
eslint 4.9.0 4.10.0 4.10.0 MyApplication1 > grunt-eslint
package-lock.json 通过将 eslint(中间依赖项,在本例中为 grunt-eslint)保持在 4.9.0 来完成其工作。如何更新到 eslint@4.10?
我尝试了以下命令,但 npm 没有做任何事情:
npm update grunt-eslint --dev --depth 1
npm update eslint --dev
如果我将 eslint 添加为***依赖项,它会起作用,但我认为这不是正确的方法。
【问题讨论】:
npm install --save-dev eslint
怎么样?而不是update
?
@zero298 可行,但它会导致依赖项被保存为***依赖项,并且对于不同深度的中间依赖项执行此操作也不可行
你试过npm install eslint@4.10.0 --dev --depth 1
【参考方案1】:
这显然是一个 hacky 解决方法,但它可以达到目的:
npm install eslint --save-dev && npm uninstall eslint --save-dev
如果有更好的方法,我很乐意接受另一个答案。
【讨论】:
以上是关于使用 package-lock.json 更新中间 npm 依赖项的主要内容,如果未能解决你的问题,请参考以下文章
在 package.json 和 package-lock.json 中更新版本号而不更新依赖
package.json与package-lock.json的区别
如何在没有任何副作用的情况下更新 package-lock.json 中的单个依赖项?
package.json 与 package-lock.json 的区别