验证Angular模块版本依赖性

时间:2017-03-16 11:26:28

标签: node.js angular npm

我来自Java / Maven环境,无法理解npm中的版本控制。这似乎很脆弱。

如何确保npm包中的所有版本都正确? 似乎 @angular 的某些部分具有独立于其他Angular包的版本(例如 @ 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"
  },

1 个答案:

答案 0 :(得分:0)

npm使用semantic versioning

<major>.<minor>.<patch>
  1. 主要版本升级 - 重大变更
  2. 次要版本升级 - 不间断更改(包括新功能)
  3. 补丁版本增量 - 不破坏,修复现有功能的错误
  4. 您可以控制如何应用版本控制(不支持通配符)。版本号前面的符号表示在应用更新时如何应用升级(即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.0