Có thể bạn đang sử dụng npm @ 3 (phiên bản 3).
Như được chỉ định trong tài liệu, các phiên bản npm 1 và 2 được sử dụng để cài đặt peerDependencies
trong hầu hết các trường hợp. Npm phiên bản 3 thay đổi hành vi này và không còn cài đặt peerDependencies
mà thay vào đó hãy ném cảnh báo khi peerDependencies
chưa được cài đặt.
npm phiên bản 1 và 2 sẽ tự động cài đặt peerDependencies nếu chúng không phụ thuộc rõ ràng vào cao hơn trong cây phụ thuộc. Trong phiên bản chính tiếp theo của npm (npm @ 3), điều này sẽ không còn xảy ra. Bạn sẽ nhận được một cảnh báo rằng peerDependency không được cài đặt thay thế.
Lý do đằng sau những thay đổi chủ yếu là để tránh địa ngục phụ thuộc khi sử dụng peerDependencies
hoặc phần lớn thời gian peerDependencies
đang được sử dụng sai. Có một số vấn đề trên npm Github liên quan đến peerDependencies
như this one giải thích một số vấn đề và điều đã dẫn đến giải pháp không cài đặt thêm peerDependencies
nữa.
Nếu ứng dụng của bạn gặp sự cố nếu request
chưa được cài đặt, bạn chủ yếu yêu cầu. Tại thời điểm này, trong môi trường NPM, dependencies
là gói bạn require()
, devDependencies
là gói bạn require()
chỉ cho sự phát triển, kiểm tra, vv
peerDependencies
được thiết kế ban đầu để giải quyết vấn đề với các gói mà chủ yếu là 'plugins' cho các khung công tác hoặc thư viện khác, được thiết kế để được sử dụng với gói 'máy chủ' khác mặc dù chúng không trực tiếp sử dụng hoặc yêu cầu gói 'lưu trữ'.
Ví dụ: Plugin Grunt có nghĩa là được sử dụng với Grunt nhưng không bao giờ require('grunt');
. Việc thêm grunt
làm dependencies
sẽ dẫn đến bản sao gói mới được tải xuống sẽ không bao giờ được sử dụng. Ngay cả khi một số plugin có phụ thuộc trực tiếp vào gói 'máy chủ' và chỉ định gói 'máy chủ' trong dependencies
, điều này sẽ dẫn đến nhiều bản sao của gói 'máy chủ'.
Một peerDependencies
là một cách khác để nói rằng một gói hoạt động khi cắm vào một phiên bản của một gói 'host', vì vậy nếu bạn cài đặt gói này, bạn cũng nên cài đặt gói này khác tay.
Đó là hành vi hiện tại của bạn, bạn đang cài đặt ứng dụng, liệt kê request
làm peerDependencies
, vì vậy bạn nên cài đặt nó để hoạt động và xóa cảnh báo, nếu không, bạn sẽ cần phải di chuyển đến số cổ điển dependencies
.
Khá nhiều công việc được thiết kế; nếu bạn muốn phụ thuộc được cài đặt khi module của bạn được cài đặt khi sử dụng 'dependency'. Nếu bạn muốn người tiêu dùng quản lý phiên bản 'yêu cầu' nào được cài đặt, thì bạn sử dụng' peerDependency'. Nó chỉ mất hai bước để cài đặt theo cách này; thay vì ba nếu bạn thất bại trong việc cài đặt ... Có lẽ bạn nên tắt 'dependency' thành một phiên bản chính: tức là" 2.x "theo cách đó nó sẽ được cài đặt, nhưng được trừ trên máy tính người tiêu dùng. liên quan chặt chẽ: http://stackoverflow.com/questions/35207380/how-to-install-npm-peer-dependencies-automatically –