UNMET PEER DEPENDENCY D3.js和Angular 2

我有一个现有的Angular 2项目,我正在尝试开始将一些D3.js集成到我的项目中。 我是Angular的新手,这将是我第一次使用D3。 我会按照这个教程: https : //keathmilligan.net/create-reusable-chart-components-with-angular-2-and-d3-js-version-4/

我运行命令npm install --save d3 ,我得到:

 ├── UNMET PEER DEPENDENCY @angular/compiler@2.2.3 ├── UNMET PEER DEPENDENCY @angular/compiler-cli@2.2.3 ├── UNMET PEER DEPENDENCY @angular/core@2.2.3 └── d3@4.4.1 

…然后

 npm WARN @ngtools/webpack@1.2.1 requires a peer of @angular/compiler@^2.3.1 but none was installed. npm WARN @ngtools/webpack@1.2.1 requires a peer of @angular/compiler-cli@^2.3.1 but none was installed. npm WARN @ngtools/webpack@1.2.1 requires a peer of @angular/core@^2.3.1 but none was installed. npm WARN @ngtools/webpack@1.2.1 requires a peer of @angular/tsc-wrapped@^0.5.0 but none was installed. npm WARN tslint-loader@2.1.5 requires a peer of tslint@^3.0.0 but none was installed. 

首先,我想我在看到"UNMET PEER DEPENDENCY"时,仍然不清楚它的真正含义。 这只是一个警告,或者这是表明有什么东西真的被打破了? 我的项目目前工作(但我还没有开始用D3编码)…是不是只是安装了错误版本的东西? 我已经采取了更新一切通过npm update --save的步骤,NPM确实find了一些更新,但我仍然有同样的问题。

我的主要问题是,我正在安装D3js,不应该完全独立于Angular吗? 为什么当我安装一些不相关的东西的时候,NPM咆哮着Angular的东西?

这是我的package.json后更新:

  "name": "cl-test2", "version": "0.0.0", "license": "MIT", "angular-cli": {}, "scripts": { "start": "ng serve", "lint": "tslint \"src/**/*.ts\"", "test": "ng test", "pree2e": "webdriver-manager update", "e2e": "protractor" }, "private": true, "dependencies": { "@angular/common": "2.2.3", "@angular/compiler": "2.2.3", "@angular/core": "^2.2.3", "@angular/forms": "2.2.3", "@angular/http": "2.2.3", "@angular/platform-browser": "2.2.3", "@angular/platform-browser-dynamic": "2.2.3", "@angular/router": "3.2.3", "@types/node": "^6.0.58", "angular-cli": "^1.0.0-beta.22-1", "core-js": "^2.4.1", "d3": "^4.4.1", "rxjs": "5.0.0-beta.12", "ts-helpers": "^1.1.1", "tslint": "^4.3.1", "zone.js": "^0.6.23" }, "devDependencies": { "@angular/compiler-cli": "2.2.3", "@types/jasmine": "2.5.38", "@types/node": "^6.0.42", "angular-cli": "^1.0.0-beta.24", "codelyzer": "~2.0.0-beta.1", "jasmine-core": "2.5.2", "jasmine-spec-reporter": "2.5.0", "karma": "1.2.0", "karma-chrome-launcher": "^2.0.0", "karma-cli": "^1.0.1", "karma-jasmine": "^1.0.2", "karma-remap-istanbul": "^0.2.1", "protractor": "4.0.9", "ts-node": "1.2.1", "tslint": "^4.0.2", "typescript": "~2.0.3", "webdriver-manager": "10.2.5" } } 

UNMET PEER DEPENDENCY日志只是警告而不是错误。

他们警告你,你正在使用的lib, @ngtools/webpack@1.2.1 ,应该使用@angular/compiler@^2.3.1 (更多信息在^ https://stackoverflow.com/a/22345808/5706293 ),因为我敢肯定,你自己想清楚了。

这些库的作者可能有一些不赞成使用的API,可能不支持更高版本中的当前代码,这是您应该升级您的依赖关系的原因之一。

这并没有回答我所有的问题,但它清楚了我得到的警告。 我只是更新了几个包到最新版本。

 { "name": "cl-test2", "version": "0.0.0", "license": "MIT", "angular-cli": {}, "scripts": { "start": "ng serve", "lint": "tslint \"src/**/*.ts\"", "test": "ng test", "pree2e": "webdriver-manager update", "e2e": "protractor" }, "private": true, "dependencies": { "@angular/common": "^2.4.2", "@angular/compiler": "^2.4.2", "@angular/core": "^2.4.2", "@angular/forms": "^2.4.2", "@angular/http": "^2.4.2", "@angular/platform-browser": "^2.4.2", "@angular/platform-browser-dynamic": "^2.4.2", "@angular/router": "^3.4.2", "core-js": "^2.4.1", "d3": "^4.4.1", "rxjs": "^5.0.1", "ts-helpers": "^1.1.2", "types.d3": "^0.1.1", "zone.js": "^0.7.2" }, "devDependencies": { "@angular/compiler-cli": "2.4.2", "@types/jasmine": "2.5.38", "@types/node": "^6.0.42", "angular-cli": "^1.0.0-beta.24", "codelyzer": "~2.0.0-beta.1", "jasmine-core": "2.5.2", "jasmine-spec-reporter": "2.5.0", "karma": "1.2.0", "karma-chrome-launcher": "^2.0.0", "karma-cli": "^1.0.1", "karma-jasmine": "^1.0.2", "karma-remap-istanbul": "^0.2.1", "protractor": "4.0.13", "ts-node": "1.2.1", "tslint": "^4.0.2", "typescript": "~2.1.4", "webdriver-manager": "10.2.5" } } 

我也有类似的问题,我已经按照步骤

首先,npm install -g @ angular / cli

用新的英雄应用程序创build新的项目

进入项目文件夹后运行服务器

并打开浏览器并运行http:// localhost:4200

这是我的工作..希望同样的事情为你工作