【问题标题】:Installing Angular2 over package.json: UNMET PEER DEPENDENCY在 package.json 上安装 Angular2:UNMET PEER DEPENDENCY
【发布时间】:2016-07-18 23:30:22
【问题描述】:

假设我有一个带有以下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 只是一个有趣/现代的例子来展示实际问题。

【问题讨论】:

    标签: angular npm dependencies peer


    【解决方案1】:

    这不是 Angular 2 的问题。

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

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

    Here你可以在最后的评论中找到一些技巧,可能有一些 npm 包可以为你做到这一点,运行快速搜索并找出。

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

    如果您有兴趣了解为什么没有自动安装 peerDepdendencies,请阅读 Here

    【讨论】:

    • hmm npm 正在老化并且变得非常老化:/ 必须有一个智能的解决方案,.. 这不是一个真正可以接受的解决方案:npm info . peerDependencies | sed -n 's/^{\{0,1\}[[:space:]]*'\''\{0,1\}\([^:'\'']*\)'\''\{0,1\}:[[:space:]]'\''\([^'\'']*\).*$/\1@\2/p' | xargs npm i
    • 你是对的,但删除 peerDeps 是有原因的......我同意这很麻烦,但我确信那里有 npm 包可以帮助你
    猜你喜欢
    • 2017-01-05
    • 1970-01-01
    • 2018-06-13
    • 2017-10-14
    • 2017-04-22
    • 1970-01-01
    • 1970-01-01
    • 2017-04-24
    • 2017-08-14
    相关资源
    最近更新 更多