【发布时间】:2017-09-25 21:41:05
【问题描述】:
我想知道我是否在我的 package.json 中正确解决了未满足的对等依赖项。如果我遇到错误UNMET PEER DEPENDENCY {package@version},我应该将依赖项安装到“dependencies”或“devDependencies”还是依赖?
我试过了
npm install --save {package}
和
npm install --save-dev {package}
请注意,每次安装后我都会运行以下命令 -
rm -rf ~/.npm
rm -rf node_modules
npm cache clean
npm install
我的具体问题是,在运行npm install 之后,我在项目根目录下有以下未满足的对等依赖项。只有@angular core & common 在另一个包下 -
path/to/app
├── UNMET PEER DEPENDENCY @angular/animations@4.1.0
├── UNMET PEER DEPENDENCY @angular/common@4.1.0 invalid
├── UNMET PEER DEPENDENCY @angular/compiler@4.1.0
├── UNMET PEER DEPENDENCY @angular/core@4.1.0 invalid
├── UNMET PEER DEPENDENCY @angular/platform-browser@4.1.0
├── UNMET PEER DEPENDENCY @angular/platform-browser-dynamic@4.0.3
├─┬ @swimlane/ngx-charts-dag@1.0.0
│ ├── UNMET PEER DEPENDENCY @angular/common@~2.4.5
│ ├── UNMET PEER DEPENDENCY @angular/core@~2.4.5
├─┬ UNMET PEER DEPENDENCY d3@4.8.0
├── UNMET PEER DEPENDENCY node-sass@^4.0.0
├─┬ UNMET PEER DEPENDENCY rxjs@5.3.0
└── UNMET PEER DEPENDENCY zone.js@0.8.9
但是,即使在使用以下两个命令之一进行安装,然后删除 node_modules 并清理缓存后,我仍然有未满足的依赖项。
npm install --save-dev @angular/animations @angular/common @angular/compiler @angular/core @angular/platform-browser @angular/common @angular/core d3 less rxjs zone.js
npm install --save @angular/animations @angular/common @angular/compiler @angular/core @angular/platform-browser @angular/common @angular/core d3 less rxjs zone.js
所以最重要的是,我安装 UNMET 依赖项的方法是否正确?如果有人知道我的问题的解决方法,我将不胜感激。
编辑: 使用 npm 版本 4.2.0,这是我对正确 ngx-charts-dag 版本的依赖项-
"dependencies": {
"@angular/animations": "~4.0.3",
"@angular/common": "~4.0.3",
"@angular/compiler": "~4.0.3",
"@angular/core": "~4.0.3",
"@angular/platform-browser": "~4.0.3",
"@angular/platform-browser-dynamic": "~4.0.3",
"d3": "4.8.0",
"@swimlane/ngx-charts-dag": "^2.0.0",
"rxjs": "5.3.0",
"zone.js": “0.8.9”,
…
}
我仍然在 package.json 中的项目根目录下看到未满足的对等依赖问题 -
├── UNMET PEER DEPENDENCY @angular/common@4.0.3
├── UNMET PEER DEPENDENCY @angular/compiler@4.0.3
├── UNMET PEER DEPENDENCY @angular/core@4.0.3
├── UNMET PEER DEPENDENCY @angular/platform-browser@4.0.3
├── UNMET PEER DEPENDENCY @angular/platform-browser-dynamic@4.0.3
├─┬ UNMET PEER DEPENDENCY d3@4.8.0
├─┬ UNMET PEER DEPENDENCY rxjs@5.3.0
└── UNMET PEER DEPENDENCY zone.js@0.8.9
编辑2: Mitch 提供的一些修复删除了 rxjs@5.3.0 和 zone.js@0.8.9 的未满足的对等依赖项。这些是由已弃用的“ng2d3”引起的,该“ng2d3”已移至 ngx-charts。 “angular2-google-maps”还对 zone.js@0.8.9 具有未满足的对等依赖项。仍然令人费解的是,在删除“ng2d3”和“angular2-google-maps”后,我收到了以下 UNMET PEER DEPENDENCIES
├── UNMET PEER DEPENDENCY @angular/animations@4.0.3
├── UNMET PEER DEPENDENCY @angular/common@4.0.3
├── UNMET PEER DEPENDENCY @angular/compiler@4.0.3
├─┬ UNMET PEER DEPENDENCY @angular/compiler-cli@4.1.0
├── UNMET PEER DEPENDENCY @angular/core@4.0.3
├── UNMET PEER DEPENDENCY @angular/platform-browser@4.0.3
├── UNMET PEER DEPENDENCY @angular/platform-browser-dynamic@4.0.3
├─┬ UNMET PEER DEPENDENCY d3@4.2.2
├─┬ UNMET PEER DEPENDENCY webpack@2.5.0
这些与我的 package.json 中指定的确切版本匹配 -
"dependencies": {
"@angular/animations": "4.0.3",
"@angular/common": "4.0.3",
"@angular/compiler": "4.0.3",
"@angular/compiler-cli": "4.1.0",
"@angular/core": "4.0.3",
"@angular/platform-browser": "4.0.3",
"@angular/platform-browser-dynamic": "4.0.3",
"d3": "4.2.2"
},
"devDependencies": {
"webpack": "2.5.0",
}
【问题讨论】:
-
您的 package.json 中是否指定了 npm 的版本?你目前正在运行什么版本的 npm?
-
我没有在 package.json 中指定我的 npm 版本。我正在使用 4.2.0
-
Angular 在依赖方面有点棘手。您可以删除
node_modules并更新您的 package.json 以包含警告中提到的 exact 版本吗?例如"@angular/animations": "4.1.0" -
不幸的是同样的问题。我的方法看起来正确吗?
-
"@angular/core"和common可能不在您的devDependencies中——这是构建工具、开发工具、测试框架等的地方。什么包引发了“UNMET PEER”问题?
标签: node.js angular npm dependencies package.json