如何在package-lock.json中更新单个依赖项,而没有任何副作用?

时间:2018-11-02 11:21:41

标签: javascript node.js npm frontend

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

"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文件的次要版本更新?

谢谢!

1 个答案:

答案 0 :(得分:0)

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