如果我执行npm install "grunt-contrib-uglify" --save-dev,下面的行将被添加到开发依赖项中:
grunt-contrib-uglify: "^0.4.0",我认为构建脚本应该引用所需工具的确切版本,并在需要时手动升级工具,以避免在构建过程中出现不适当的时间倒退。
所以我感到惊讶的是,增加的行不是
grunt-contrib-uglify: "~0.4.0",我是不是漏掉了什么?应该始终在使用--save-dev选项后将^更改为a~吗?
发布于 2014-04-24 13:33:39
~也不意味着确切的版本,~和^都是符号学的一部分,并且指示不同级别的非破坏更改,即它将减少错误修复和重新因素,但不会破坏更改。
你有多相信这真的取决于你。您相信包所有者在进行错误修复时不会引入破坏的更改吗?你相信你的测试会发现任何问题吗?如果没有,那么您可能希望在版本之前没有任何符号来获得确切的版本。还可以收缩膜您的依赖项。
编辑:有关package.json中~、^和其他符号含义的更多信息,请参见https://github.com/isaacs/node-semver。就这一具体情况而言:
~1.2 := >=1.2.0-0 <1.3.0-0“任何以1.2”开头的版本 ^1.2 := >=1.2.0-0 <2.0.0-0“与1.2”兼容的任何版本
https://stackoverflow.com/questions/23269149
复制相似问题