0

假设我有一个带有以下package.json文件的空项目:

{
  "name": "EmptyNG2",
  "version": "1.0.0",
  "description": "Empty Description",
  "repository": {},
  "dependencies": {
    "angular2": "^2.0.0-beta.17"
  },
  "author": "me",
  "license": "ISC"
}

现在我想安装 Angular2 及其所有依赖项(无论它需要什么)并使用:

npm i -SDOEdd

i        for install
-S       save the installed packages into package.json
D        save Dependencies
O        save Optional Dependencies
E        use exactly the given version Angular -> 2.0.0-beta.17
dd       show me what you do (short version for --verbose)

NPM 识别对等依赖项但仍然不安装它们:

npm WARN angular2@2.0.0-beta.17 requires a peer of es6-shim@^0.35.0 but none was installed.
npm WARN angular2@2.0.0-beta.17 requires a peer of reflect-metadata@0.1.2 but none was installed.
npm WARN angular2@2.0.0-beta.17 requires a peer of rxjs@5.0.0-beta.6 but none was installed.
npm WARN angular2@2.0.0-beta.17 requires a peer of zone.js@^0.6.12 but none was installed.

是否有额外的密钥?

编辑:我知道,这不是一个角度问题:angular2 只是一个有趣/现代的例子来展示实际问题。

4

1 回答 1

0

这不是 Angular 2 的问题。

简单来说,NPM 不会安装其他包的peerDependencies

Angular 有一些对等依赖项,您需要在安装 Angular 之前安装这些依赖项。

在这里你可以在最后一条评论中找到一些技巧,可能有一些 npm 包可以为你做这件事,运行快速搜索并找出答案。

无论如何,这是预期的行为,没有错。

如果您对有关为什么不自动安装peerDepdendencies的一些历史感兴趣,请阅读此处

于 2016-07-18T15:22:35.053 回答