Leg*_*nds 1 npm semantic-versioning npm-update
我的 package.json 文件中有一个 npm 包
"clean-webpack-plugin": "^0.1.18"
Run Code Online (Sandbox Code Playgroud)
现在当我将鼠标悬停在包上时,我可以看到有一个更新的版本
"clean-webpack-plugin": "^0.1.19"
Run Code Online (Sandbox Code Playgroud)
现在,据我npm update所知,例如,我可以更新所有遵守 semver 规则的包或仅更新 package npm update clean-webpack-plugin。
所以插入^符号应该意味着,0.9.9如果可用,您可以将包更新到版本,对吗?
npm update 没有效果,这就是我问的原因。
我很肯定的是,故宫将获得应用程序文件更新clean-webpack-plugin 从版本0.1.18 到版本0.1.19运行后:npm update clean-webpack-plugin在你的问题中所述。
但是,npm 不会更新您的条目,package.json因为理论上实际上没有必要这样做。为什么?.. 因为版本"^0.1.18"是在package.json. 即版本是用脱字^符号指定的。
比方说,你是与发布项目^0.1.18中指定package.json随后的所有用户运行npm install实际上将获得版本0.1.19反正(警告:作为版本历史记录clean-webpack-plugin目前在写这篇的时候矗立在故宫库)。
所以,简而言之,我很确定0.1.19您的系统上已经安装了该版本,它只是没有更改package.json. 实际上没有必要这样做,semver 的规则和插入符号的使用仍然受到尊重。
所以插入
^符号应该意味着,0.9.9如果可用,您可以将包更新到版本,对吗?
插入符号"^0.1.18"是对 npm 说我将接受对最新MINOR版本的任何更新,但我不会接受重大更新。即^0.1.18表示该范围内的任何更新>=0.1.18 <1.0.0 (也允许该范围内的PATCH 更新)。
验证是否已更新:
要验证版本是否0.1.19已实际安装,您可以cd到您的项目目录并运行:
npm ls clean-webpack-plugin
Run Code Online (Sandbox Code Playgroud)
您应该会看到以下记录到您的控制台:
...
??? clean-webpack-plugin@0.1.19
Run Code Online (Sandbox Code Playgroud)
但我想在运行后package.json显示:"^0.1.19"npm update
当您最初运行时,npm update clean-webpack-plugin您可以:
--save-dev参数(如果它列在您的devDependencies部分中,则适用package.json)。--save参数(如果它列在您的dependencies部分中,则适用package.json)。附加--save-dev或--save适当附加npm update clean-webpack-plugin将更新 中的条目package.json。这在 npm 文档的Recording Updates with--save部分有进一步的解释。
通过这样做,您可以将其视为重新指定>=您将接受的更新范围的初始部分。
笔记
运行npm update clean-webpack-plugin具有附加--save或--save-dev参数不会有任何是否影响npm ls clean-webpack-plugin报告:
...
??? clean-webpack-plugin@0.1.19
Run Code Online (Sandbox Code Playgroud)
没有什么要更新的,所以我只是"^0.1.19"在package.json.