2017-01-07 4 views
5

У меня есть существующий проект Angular 2, и я пытаюсь приступить к интеграции некоторых D3.js в свой проект. Я новичок в Angular, и это будет мой первый подход к использованию D3. Я буду следовать этот учебник: https://keathmilligan.net/create-reusable-chart-components-with-angular-2-and-d3-js-version-4/UNEPT PEER DEPENDENCY D3.js и Angular 2

Я бегу команду npm install --save d3, и я получаю:

├── UNMET PEER DEPENDENCY @angular/[email protected] 
├── UNMET PEER DEPENDENCY @angular/[email protected] 
├── UNMET PEER DEPENDENCY @angular/cor[email protected] 
└── [email protected] 

... тогда

npm WARN @ngtools/[email protected] requires a peer of @angular/[email protected]^2.3.1 but none was installed. 
npm WARN @ngtools/[email protected] requires a peer of @angular/[email protected]^2.3.1 but none was installed. 
npm WARN @ngtools/[email protected] requires a peer of @angular/[email protected]^2.3.1 but none was installed. 
npm WARN @ngtools/[email protected] requires a peer of @angular/[email protected]^0.5.0 but none was installed. 
npm WARN [email protected] requires a peer of [email protected]^3.0.0 but none was installed. 

С одной стороны, я предполагаю, что я м еще не совсем ясно, что это значит, когда я вижу "UNMET PEER DEPENDENCY". Это просто предупреждение, или это указывает на то, что что-то действительно нарушено? Мой проект работает в настоящее время (но я еще не начал кодирование с помощью D3) ... Просто ли установлена ​​неправильная версия чего-то? Я предпринял шаги по обновлению всего через npm update --save, и NPM нашел некоторые обновления для меня, но у меня все еще такая же проблема.

Мой главный вопрос, однако, я устанавливаю D3js, не должен ли это быть полностью независимым от Angular? Почему NPM лает о Угловом материале, когда я устанавливаю что-то несвязанное?

Вот мой 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" 
    } 
} 
+2

После неудовлетворенной зависимости сверстников консоль должна печатать что-то вроде «углового требует сверстника с угловым.vx, но angular.vx был установлен instaed' вы можете также добавить, что на ваш вопрос? – echonax

+0

Хорошо, добавили предупреждения npm. – BBaysinger

ответ

2

UNMET PEER DEPENDENCY журналы просто предупреждения не ошибки.

Они предупреждают вас о том, что Lib, который вы используете, @ngtools/[email protected], следует использовать @angular/[email protected]^2.3.1 (подробнее о ^https://stackoverflow.com/a/22345808/5706293), как я уверен, что вы выяснили сами.

У автора этих библиотек может быть несколько устаревших API и может не поддерживать текущий код в более поздних версиях, это одна из причин, по которой вам следует обновлять свои зависимости.

0

Это не отвечает на все вопросы, которые у меня возникли, но он устраняет предупреждения, которые я получал. Я только что обновил несколько пакетов до последних версий.

{ 
    "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" 
    } 
} 
0

Я был также подобный вопрос, я последовал за шагами

Во-первых, НПМ установки -g @ угловой/кли

создать новый проект с нг нового героя-приложение

После зайдите в папку проекта и запустите сервер ng.

и открыть браузер и запустить http://localhost:4200

Это работа для меня .. Надеюсь, что то же самое работает и для вас, а также