2017-01-07 23 views
5

Tôi có dự án Angular 2 hiện có và tôi đang cố bắt đầu tích hợp một số D3.js vào dự án của mình. Tôi mới đến Angular, và đây sẽ là lần đầu tiên tôi sử dụng D3. Tôi sẽ làm theo hướng dẫn này: https://keathmilligan.net/create-reusable-chart-components-with-angular-2-and-d3-js-version-4/UNMET PEER DEPENDENCY D3.js và Angular 2

Tôi đang chạy lệnh npm install --save d3, và tôi nhận được:

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

... sau đó

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. 

Đối với một, tôi đoán tôi m vẫn không chính xác rõ ràng về những gì nó thực sự có nghĩa là khi tôi nhìn thấy "UNMET PEER DEPENDENCY". Đây có phải chỉ là một cảnh báo, hay là điều này cho thấy một cái gì đó thực sự bị hỏng? Dự án của tôi hoạt động hiện tại (nhưng tôi chưa bắt đầu viết mã với D3) ... Chỉ đơn thuần là phiên bản sai của một thứ đã được cài đặt? Tôi đã thực hiện các bước cập nhật mọi thứ qua npm update --save và NPM đã tìm thấy một số cập nhật cho tôi, nhưng tôi vẫn gặp phải vấn đề tương tự.

Câu hỏi chính của tôi là, tôi đang cài đặt D3js, điều đó không hoàn toàn độc lập với Angular? Tại sao NPM lại sủa về công cụ Góc khi tôi cài đặt một thứ gì đó không liên quan?

Đây là bản cập nhật package.json bài viết của tôi:

"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

Sau ngang hàng chưa được đáp ứng phụ thuộc giao diện điều khiển nên in một cái gì đó như 'góc đòi hỏi một peer của angular.vx nhưng angular.vx instaed' đã được cài đặt có thể bạn cũng thêm điều đó vào câu hỏi của bạn? – echonax

+0

Ok, đã thêm cảnh báo npm. – BBaysinger

Trả lời

2

UNMET PEER DEPENDENCY bản ghi chỉ là cảnh báo không sai sót.

Họ cảnh báo bạn rằng lib mà bạn đang sử dụng, @ngtools/[email protected], nên sử dụng @angular/[email protected]^2.3.1 (biết thêm về ^https://stackoverflow.com/a/22345808/5706293) như tôi chắc chắn rằng bạn đã tìm ra cho mình.

Tác giả của những lib đó có thể có một số API không dùng nữa và có thể không hỗ trợ mã hiện tại trong các phiên bản sau, đó là một trong những lý do bạn nên nâng cấp các phụ thuộc của mình.

0

Điều này không trả lời tất cả các câu hỏi tôi có, nhưng nó làm sáng tỏ những cảnh báo tôi nhận được. Tôi vừa cập nhật một vài gói lên phiên bản mới nhất.

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

Tôi cũng đã vấn đề tương tự, tôi đã làm theo các bước

Thứ nhất, NPM cài đặt -g @ góc/cli

tạo dự án mới với ng mới anh hùng ứng dụng

Sau di chuyển bên trong thư mục dự án và chạy máy chủ ng phục vụ

và mở trình duyệt và chạy http://localhost:4200

Đây là công việc cho tôi .. Hy vọng việc điều tương tự cho bạn là tốt