我来自Java/Maven环境,很难理解npm中的版本控制。它看起来很脆弱。
如何确保npm软件包的所有版本都是正确的?看起来,“角”的某些部分有独立于其他角包的版本(例如,@angular/router__,@angular/animations__)通配符可以这样使用以保持所有模块的正确版本吗?)
"dependencies": {
"@angular/common": "^2.4.*",
"@angular/compiler": "^2.4.*",
"@angular/core": "^2.4.*",
"@angular/forms": "^2.4.*",
"@angular/http": "^2.4.*",
"@angular/platform-browser": "^2.4.*",
"@angular/platform-browser-dynamic": "^2.4.*",
"@angular/router": "^3.4.*",
"core-js": "^2.4.1",
"font-awesome": "^4.7.0",
"primeng": "^2.0.*",
"rxjs": "^5.1.0",
"zone.js": "^0.7.6"
},发布于 2017-03-16 11:41:52
国家预防机制使用语义版本化:
<major>.<minor>.<patch>您可以控制如何应用版本控制(不支持通配符)。版本号前面的符号表示在应用更新(即npm更新)时如何应用升级:
^1.0.0 : increment to latest minor version. i.e. matches 1.x.x
~1.0.0 : increment to latest patch i.e. matches 1.0.x
1.0.0 : matches exact version这三种升级模式都应该是不间断的和向后兼容的.然而,在实践中,意外的副作用确实会发生,有时一个非破坏性的改变最终会破坏其他一些东西。在这种情况下,一旦发现问题,将应用另一个修补程序来确保向后兼容性。
还支持范围:
>=1.2.7 <1.3.0https://stackoverflow.com/questions/42832783
复制相似问题