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

Rya*_*ton 7 javascript frontend node.js npm

我希望将NPM (v5)我的应用程序中的以下依赖项从版本更新1.0.0到1.0.1而不对我的package.json文件进行任何更改。

"dependencies": {
  "package": "~1.0.0"
},
Run Code Online (Sandbox Code Playgroud)

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

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

是否有我可以运行的单个命令来实现仅对 package-lock.json文件?

提前致谢!

ytt*_*ium 9

跑步npm update <package>。

这会将其更新到满足您中指定的要求package.json并反映package-lock.json.


mih*_*hai -3

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
Run Code Online (Sandbox Code Playgroud)

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