Đối với người đọc nhanh chóng: QA này là về lĩnh vực package.json bundledDependencies, không về package.
gì bundledDependencies làm
"bundledDependencies" là chính xác những gì tên của họ ngụ ý. Các phụ thuộc nên nằm trong dự án của bạn. Vì vậy, chức năng cơ bản giống như các phụ thuộc bình thường. Chúng cũng sẽ được đóng gói khi chạy npm pack
.
Khi nào sử dụng chúng
Phụ thuộc thông thường thường được cài đặt từ đăng ký npm. phụ thuộc Như vậy đi kèm có thể hữu ích khi:
- bạn muốn tái sử dụng một thư viện của bên thứ ba mà không đến từ registry NPM hoặc đã được sửa đổi
- bạn muốn tái sử dụng các dự án riêng của bạn như module
- bạn muốn phân phối một số tập tin với module của bạn
bằng cách này, bạn không cần phải tạo ra (và duy trì) kho NPM riêng của bạn, nhưng có được những lợi ích tương tự mà bạn nhận được từ các gói NPM.
Khi không để sử dụng phụ thuộc
Khi phát triển kèm, tôi không nghĩ rằng điểm chính là để ngăn chặn cập nhật tình cờ mặc dù. Chúng tôi có các công cụ tốt hơn cho điều đó, cụ thể là các kho lưu trữ mã (git, mercurial, svn ...) hoặc bây giờ là các tệp khóa.
Để ghim phiên bản gói, bạn có thể sử dụng:
OPTION1: Sử dụng NPM phiên bản mới hơn 5 mà đi kèm với nút 8. Nó sử dụng một tập tin package-lock.json
(xem node blog và phát hành nút 8)
Option2: sử dụng yarn thay vì npm
. Trình quản lý gói từ facebook, nhanh hơn npm
và sử dụng tệp yarn.lock
. Nó sử dụng cùng một cách package.json
.
này được so sánh với lockfiles trong quản lý gói khác như Bundler hoặc Cargo. Nó giống với npm-shrinkwrap.json của npm, tuy nhiên nó không phải là mất dữ liệu và nó tạo ra kết quả có thể lặp lại.
npm
thực sự đã sao chép tính năng đó từ yarn
, trong số những thứ khác.
- Option3: đây là cách tiếp cận được đề xuất trước đây, mà tôi không khuyên dùng nữa. Ý tưởng là sử dụng
npm shrinkwrap
hầu hết thời gian, và đôi khi đặt toàn bộ điều, bao gồm cả thư mục node_module, vào kho lưu trữ mã của bạn. Hoặc có thể sử dụng shrinkpack. Các phương pháp hay nhất vào thời điểm đó đã được thảo luận trên node.js blog và trên các trang web joyent developer.
cũng
Xem Đây là một chút bên ngoài phạm vi của câu hỏi, nhưng tôi muốn đề cập đến loại cuối cùng phụ thuộc (mà tôi biết): peer dependencies. Ngoài ra, hãy xem điều này related SO question và có thể là tài liệu của yarn
trên bundledDependencies.
'Nếu điều này được viết "bó phụ thuộc", thì điều đó cũng đáng kính.' Tài liệu tuyệt vời! –
Tuy nhiên, bằng cách nào đó, sửa chữa nó để chỉ đọc "cũng được vinh danh" cảm thấy buồn. Ở một chỗ chật hẹp, nếu tôi ra lệnh cho một samurai hay hiệp sĩ trợ giúp, tôi chắc chắn muốn anh ta đi kèm với vũ khí và áo giáp tương thích - và đáng kính. –
"Tôi đoán nếu chúng tôi muốn chắc chắn rằng chúng tôi có được phiên bản phù hợp ngay cả khi mô-đun chúng tôi tham chiếu bị xóa" đột nhiên mang rất nhiều trọng lượng: http://blog.npmjs.org/post/141577284765/kik-left- pad-and-npm – joews