在我升级到最新的稳定 node
和 npm
后,我尝试 npm install moment --save
。它使用插入符号 ^
前缀将条目保存在 package.json
--- 中。以前,它是一个波浪号 ~
前缀。
- 为什么在
npm
中进行这些更改? - 波浪号
~
和插入符号^
有什么区别? - 与其他人相比有什么优势?
原文由 Fizer Khan 发布,翻译遵循 CC BY-SA 4.0 许可协议
在我升级到最新的稳定 node
和 npm
后,我尝试 npm install moment --save
。它使用插入符号 ^
前缀将条目保存在 package.json
--- 中。以前,它是一个波浪号 ~
前缀。
npm
中进行这些更改?~
和插入符号 ^
有什么区别?原文由 Fizer Khan 发布,翻译遵循 CC BY-SA 4.0 许可协议
与此问题相关,您可以查看 有关版本的 Composer 文档,但简而言之:
因此,使用 Tilde 您将获得补丁的自动更新,但不会更新次要和主要版本。但是,如果您使用 Caret ,您将获得补丁和次要版本,但您不会获得主要(重大更改)版本。
波浪号版本被认为是“更安全”的方法,但如果您使用可靠的依赖项(维护良好的库),您应该不会对 Caret 版本有任何问题(因为微小的更改不应该是破坏性更改。
您可能应该查看 这篇关于 composer install 和 composer update 之间差异的 stackoverflow 帖子。
原文由 milan.latinovic 发布,翻译遵循 CC BY-SA 4.0 许可协议
5 回答4.8k 阅读✓ 已解决
4 回答2.4k 阅读✓ 已解决
5 回答3.6k 阅读
2 回答1.7k 阅读✓ 已解决
5 回答1.9k 阅读
2 回答1.3k 阅读✓ 已解决
3 回答2k 阅读
请参阅 NPM 文档 和 semver 文档:
~version
“大约相当于版本” ,将更新您到所有未来的补丁版本,而不增加次要版本。~1.2.3
将使用从 1.2.3 到 <1.3.0 的版本。^version
“与版本兼容” ,将更新您到所有未来的次要/补丁版本,而不增加主要版本。^2.3.4
将使用从 2.3.4 到 <3.0.0 的版本。请参阅下面的评论了解例外情况,特别是 对于 pre-one 版本,例如 ^0.2.3