npm - Semver 版本控制 - 使用插入符号“^”更新包

2023-12-01

我的 package.json 文件中有一个 npm 包

 "clean-webpack-plugin": "^0.1.18"

现在,当我将鼠标悬停在包上时,我可以看到有更新的版本

"clean-webpack-plugin": "^0.1.19"

现在,据我了解,我可以这样做npm update更新所有遵守 semver 规则的包或仅更新包npm update clean-webpack-plugin.

所以插入符号^符号应该意味着您可以将软件包更新到版本0.9.9如果有的话,对吗?

npm update没有效果,所以我才问。


我非常确定 npm 将会更新应用程序文件clean-webpack-plugin from版本0.1.18 to版本0.1.19运行后:npm update clean-webpack-plugin正如你的问题中所描述的。

但是,npm 不会更新您的条目package.json从理论上讲,实际上没有必要这样做。为什么?..因为版本"^0.1.18"指定于package.json。 IE。版本用插入符号指定^ symbol.

假设您要发布您的项目^0.1.18指定于package.json然后任何后续用户运行npm install实际上会得到版本0.1.19 anyway (警告:作为版本历史记录clean-webpack-plugin在撰写本文时当前位于 npm 存储库中).

所以,简而言之,我很确定那个版本0.1.19已安装在您的系统上,它只是没有更改中指定的版本package.json。实际上没有必要这样做,并且 semver 的规则和插入符号的使用仍然受到尊重。

所以插入符号^符号应该意味着您可以将软件包更新到版本0.9.9如果有的话,对吗?

插入符号位于"^0.1.18"是对 npm 说我将接受任何最新的更新MINOR版本,但我不会接受重大更新。 IE。^0.1.18表示范围内的任何更新>=0.1.18 <1.0.0 (也允许该范围内的补丁更新).


验证是否已更新:

验证是否版本0.1.19实际上已经安装了你可以cd到您的项目目录并运行:

npm ls clean-webpack-plugin

您应该会看到以下内容记录到控制台:

...
└── [email protected]

但我想要package.json以显示"^0.1.19"跑步后npm update:

当你最初运行时npm update clean-webpack-plugin你可以有:

  1. 附加了--save-dev争论(如果它已列在您的devDependencies的部分package.json).
  2. 或者,附加--save争论(如果它已列在您的dependencies的部分package.json).

附加任一--save-dev or --save酌情npm update clean-webpack-plugin会更新条目package.json。这在记录更新--savenpm 文档的部分。

通过这样做,您可以将其视为重新指定初始值>=您将接受的更新范围的一部分。


Note

Running npm update clean-webpack-plugin与额外的--save or --save-dev参数不会有任何影响,如果npm ls clean-webpack-plugin报告:

...
└── [email protected]

没有什么可更新的,所以我只需手动指定"^0.1.19" in package.json.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

npm - Semver 版本控制 - 使用插入符号“^”更新包 的相关文章

随机推荐