如何在没有任何副作用的情况下更新package-lock.json中的单个依赖项



我希望在不更改package.json文件的情况下,将应用程序中的以下NPM (v5)依赖项从版本1.0.0更新为1.0.1

"dependencies": {
"package": "~1.0.0"
},

我当前的package-lock.json文件将依赖项引用为版本1.0.0,因此正如预期的那样,运行npm install将安装该包的版本1.0.0

问题在于运行npm install package@1.0.1npm update package时,这两个命令似乎都改变了package.json中包版本引用的方式

有没有一个命令我可以运行来实现仅对package-lock.json文件的小版本更新?

提前感谢!

运行npm update <package>

这将更新到满足package.json中指定要求的最新版本,并反映package-lock.json中的更新。

package-lock.json是由npm生成的,没有npm很难修改,因为它包含包哈希。

如果您只使用补丁版本(~1.0.0(引用模块,我认为可以安全地执行以下操作:

  • 备份package.json并将其删除
  • 运行npm update package。这将使用package-lock.json作为参考,还将更新package-lock.json
  • 恢复package.json
  • 现在运行npm update package不会更新package.json,因为package-lock.json是较新的版本

如果您正在寻找单行命令:

mv package.json package.json.tmp && npm update package && mv package.json.tmp package.json

同样,只有在处理补丁版本(~1.0.0(时,这样做才是安全的。如果指定次要(^1.0.0(或主要(1.0.0(版本,则可能需要直接更新package.json

最新更新