Angular2 beta 11'npm install'警告npm peerDependencies

sre*_*moh 9 npm-install angular

刚刚安装了Angular2 beta 11 npm install angular2 --save并得到了这个警告:

d:\Projects\sample>npm install angular2 --save
sample@1.0.0 d:\Projects\sample
+-- angular2@2.0.0-beta.11
+-- UNMET PEER DEPENDENCY es6-promise@^3.0.2
+-- UNMET PEER DEPENDENCY es6-shim@^0.35.0
+-- UNMET PEER DEPENDENCY reflect-metadata@0.1.2
+-- UNMET PEER DEPENDENCY rxjs@5.0.0-beta.2
`-- UNMET PEER DEPENDENCY zone.js@^0.6.4

npm WARN angular2@2.0.0-beta.11 requires a peer of es6-promise@^3.0.2 but none was installed.
npm WARN angular2@2.0.0-beta.11 requires a peer of es6-shim@^0.35.0 but none was installed.
npm WARN angular2@2.0.0-beta.11 requires a peer of reflect-metadata@0.1.2 but none was installed.
npm WARN angular2@2.0.0-beta.11 requires a peer of rxjs@5.0.0-beta.2 but none was installed.
npm WARN angular2@2.0.0-beta.11 requires a peer of zone.js@^0.6.4 but none was installed.
Run Code Online (Sandbox Code Playgroud)

以前的Angular2版本es6-promise es6-shim rxjs zone.js在main中安装了依赖项,package.js但现在却没有.

"dependencies": {
    "angular2": "^2.0.0-beta.11"
  } 
Run Code Online (Sandbox Code Playgroud)

我查了一下..\node_modules\angular2\package.json,可以看出它依赖于这些包:

    "peerDependencies": {
    "es6-promise": "^3.0.2",
    "es6-shim": "^0.35.0",
    "reflect-metadata": "0.1.2",
    "rxjs": "5.0.0-beta.2",
    "zone.js": "^0.6.4"
  }, 
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?

Don*_*gyi 5

失败后,npm install angular2 --save我刚用这个命令成功安装了angular2:

npm install --save rxjs@5.0.0-beta.6 reflect-metadata@0.1.2 zone.js es6-shim angular2@2.0.0-beta.17
Run Code Online (Sandbox Code Playgroud)

如果我们得到UNMET PEER DEPENDENCY - 在清除node_modules文件夹并从package.json中删除依赖项之后 - 我们可以做两件事:

  • 安装一下早期版本的angular2
  • 手动安装缺少的依赖项


sre*_*moh 0

看起来答案就在这里https://github.com/npm/npm/issues/6565

NPM 3x:

  1. 如果peerDependency 还不是依赖项或devDependency,则将不再隐式安装它们。这是最大的变化,也是最有可能需要开发人员干预的部分。
  2. 无效或缺失的对等依赖项将是警告而不是错误。这意味着,peerDependency 的违规行为将留给开发人员来解决,但对消费者来说,peerDependency 不兼容问题应该不会那么痛苦,因为安装会因依赖问题而退出的频率大大降低。