npm - Semver 版本控制 - 使用插入符号“^”更新包
npm - Semver versioning - Updating a package with a caret "^"
我的 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
的应用程序文件从 版本 0.1.18
更新到 版本 0.1.19
在你 运行 之后:npm update clean-webpack-plugin
如你的问题所述。
但是,npm 不会更新您 package.json
中的条目,因为理论上实际上没有必要这样做。为什么?.. 因为版本 "^0.1.18"
在 package.json
中指定。 IE。版本用脱字符 ^
符号指定。
假设您要使用 package.json
中指定的 ^0.1.18
发布您的项目,那么任何后续用户 运行ning npm install
将实际获得版本 0.1.19
无论如何 (警告:因为 clean-webpack-plugin
的版本历史记录在撰写本文时目前位于 npm 存储库中).
所以,简而言之,我很确定版本 0.1.19
已经安装在您的系统上,它只是没有更改 package.json
中指定的版本。实际上没有必要这样做,semver 的规则和插入符号的使用仍然受到尊重。
So the caret ^
symbol should mean, that you could possibly update the package to version 0.9.9
if available, right?
"^0.1.18"
中的插入符号对 npm 说我将接受对最新 MINOR 版本的任何更新,但我不会接受重大更新。 IE。 ^0.1.18
表示 >=0.1.18 <1.0.0
范围内的任何更新(也允许该范围内的 PATCH 更新).
验证是否更新:
要验证版本 0.1.19
是否已实际安装,您可以 cd
到您的项目目录并 运行:
npm ls clean-webpack-plugin
您应该会看到以下内容记录到您的控制台:
...
└── clean-webpack-plugin@0.1.19
但是我希望package.json
在运行之后显示"^0.1.19"
npm update
:
当你最初 运行 npm update clean-webpack-plugin
你可以:
- 附加了
--save-dev
参数 (如果它在 package.json
的 devDependencies
部分中列出则适用)。
- 或者,附加
--save
参数 (如果它在 package.json
的 dependencies
部分中列出则适用)。
根据需要将 --save-dev
或 --save
附加到 npm update clean-webpack-plugin
将更新 package.json
中的条目。这在 npm 文档的 Recording Updates with --save
部分有进一步解释。
通过这样做,您可以将其视为 re-specifying 您将接受的更新范围的初始 >=
部分。
备注
如果 npm ls clean-webpack-plugin
报告:,运行 npm update clean-webpack-plugin
和附加的 --save
或 --save-dev
参数将不会有任何影响
...
└── clean-webpack-plugin@0.1.19
没有什么可更新的,所以我只是在 package.json
中手动指定 "^0.1.19"
。
我的 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
的应用程序文件从 版本 0.1.18
更新到 版本 0.1.19
在你 运行 之后:npm update clean-webpack-plugin
如你的问题所述。
但是,npm 不会更新您 package.json
中的条目,因为理论上实际上没有必要这样做。为什么?.. 因为版本 "^0.1.18"
在 package.json
中指定。 IE。版本用脱字符 ^
符号指定。
假设您要使用 package.json
中指定的 ^0.1.18
发布您的项目,那么任何后续用户 运行ning npm install
将实际获得版本 0.1.19
无论如何 (警告:因为 clean-webpack-plugin
的版本历史记录在撰写本文时目前位于 npm 存储库中).
所以,简而言之,我很确定版本 0.1.19
已经安装在您的系统上,它只是没有更改 package.json
中指定的版本。实际上没有必要这样做,semver 的规则和插入符号的使用仍然受到尊重。
So the caret
^
symbol should mean, that you could possibly update the package to version0.9.9
if available, right?
"^0.1.18"
中的插入符号对 npm 说我将接受对最新 MINOR 版本的任何更新,但我不会接受重大更新。 IE。 ^0.1.18
表示 >=0.1.18 <1.0.0
范围内的任何更新(也允许该范围内的 PATCH 更新).
验证是否更新:
要验证版本 0.1.19
是否已实际安装,您可以 cd
到您的项目目录并 运行:
npm ls clean-webpack-plugin
您应该会看到以下内容记录到您的控制台:
...
└── clean-webpack-plugin@0.1.19
但是我希望package.json
在运行之后显示"^0.1.19"
npm update
:
当你最初 运行 npm update clean-webpack-plugin
你可以:
- 附加了
--save-dev
参数 (如果它在package.json
的devDependencies
部分中列出则适用)。 - 或者,附加
--save
参数 (如果它在package.json
的dependencies
部分中列出则适用)。
根据需要将 --save-dev
或 --save
附加到 npm update clean-webpack-plugin
将更新 package.json
中的条目。这在 npm 文档的 Recording Updates with --save
部分有进一步解释。
通过这样做,您可以将其视为 re-specifying 您将接受的更新范围的初始 >=
部分。
备注
如果npm ls clean-webpack-plugin
报告:,运行 npm update clean-webpack-plugin
和附加的 --save
或 --save-dev
参数将不会有任何影响
...
└── clean-webpack-plugin@0.1.19
没有什么可更新的,所以我只是在 package.json
中手动指定 "^0.1.19"
。