我希望在不更改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.1
或npm 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
。