Kiểm tra trong node_module là tiêu chuẩn cộng đồng nhưng bây giờ chúng tôi cũng có một tùy chọn để sử dụng shrinkwrap. Sau này có ý nghĩa hơn với tôi nhưng luôn luôn có cơ hội mà một người nào đó đã "lực lượng xuất bản" và giới thiệu một lỗi. Có bất kỳ hạn chế bổ sung nào không?Kiểm tra trong node_modules so với shrinkwrap
Trả lời
bài ưa thích của tôi/triết lý về vấn đề này đi tất cả các cách trở lại (một thời gian dài trong đất Node.js) đến năm 2011:
https://web.archive.org/web/20150116024411/http://www.futurealoof.com/posts/nodemodules-in-git.html
Để trích dẫn trực tiếp:
Nếu bạn có một ứng dụng, mà bạn triển khai, kiểm tra tất cả các phụ thuộc của bạn vào node_modules. Nếu bạn sử dụng npm để triển khai, chỉ xác định bundleDependencies cho các mô-đun đó. Nếu bạn có các phụ thuộc cần được biên dịch, bạn vẫn nên kiểm tra mã và chỉ cần chạy lại $ npm khi triển khai.
Mọi người tôi đã nói điều này cũng cho tôi biết tôi là một thằng ngốc và sau đó một vài tuần sau đó nói với tôi rằng tôi đã đúng và kiểm tra node_modules trong git đã là một phước lành cho việc triển khai và phát triển. Đó là khách quan tốt hơn, nhưng đây là một số câu hỏi/khiếu nại tôi dường như nhận được.
Tôi nghĩ đây vẫn là lời khuyên tốt nhất.
Kịch bản xuất bản lực là rất hiếm và npm shrinkwrap
có thể sẽ phù hợp với hầu hết mọi người. Nhưng nếu bạn đang triển khai một môi trường sản xuất, không có gì mang lại cho bạn sự an tâm như kiểm tra trong toàn bộ thư mục node_modules
.
Cách khác, nếu bạn thực sự, thực sự không muốn để kiểm tra trong thư mục node_modules
nhưng muốn có một sự bảo đảm tốt hơn vẫn chưa có một sự thúc đẩy cưỡng bức, tôi muốn làm theo những lời khuyên trong npm help shrinkwrap
:
Nếu bạn muốn tránh bất kỳ rủi ro nào mà tác giả byzantine thay thế một gói bạn đang sử dụng với mã phá vỡ ứng dụng của bạn, bạn có thể sửa đổi tệp shrinkwrap để sử dụng tham chiếu URL git thay vì số phiên bản để npm luôn lấy tất cả các gói từ git.
Tất nhiên, ai đó có thể chạy lạ git rebase
hoặc điều gì đó và sửa đổi git commit băm ... nhưng bây giờ chúng tôi mới phát điên.
NPM FAQ trực tiếp trả lời này:
- Kiểm tra node_modules vào git cho những thứ bạn triển khai, chẳng hạn như các trang web và ứng dụng.
- Không kiểm tra node_modules thành git cho thư viện và mô-đun dự định được sử dụng lại.
- Sử dụng npm để quản lý các phụ thuộc trong môi trường dev của bạn, nhưng không phải trong tập lệnh triển khai của bạn.
trích dẫn từ npm FAQ
Ngay cả Câu hỏi thường gặp cũng có thể thay đổi. Nó bây giờ đọc: "Đối với các gói bạn triển khai, chẳng hạn như các trang web và ứng dụng, bạn nên sử dụng npm shrinkwrap để khóa cây phụ thuộc đầy đủ của bạn". – Johann
- 1. Bài kiểm tra đơn vị so với bài kiểm tra chấp nhận
- 2. Bài kiểm tra đơn vị cơ bản so với bài kiểm tra đơn vị
- 3. Thử nghiệm tính năng so với đơn vị kiểm tra
- 4. Kiểm tra cập nhật adb, so với cài đặt?
- 5. Tập trung node_modules
- 6. So sánh các mảng trong kiểm tra google?
- 7. "kiểm tra tạo phiên theo phiên" so với "kiểm toán tạo phiên bằng truy cập"?
- 8. Kiểm tra không đồng bộ trong VSUTF, NUnit, xUnit.NET, MbUnit so với SUTF?
- 9. Khung kiểm tra đơn vị trong SAS: FUTS so với SASUnit
- 10. Điểm kiểm tra cho vị trí của nó so với thân lồi trong log (n)
- 11. Kiểm tra hiệu năng của hàm vô hướng so với bảng trong máy chủ sql
- 12. Thay đổi vị trí node_modules
- 13. không thể cài đặt node_modules
- 14. Sử dụng nhanh kiểm tra Kiểm tra với Cabal?
- 15. Khung kiểm tra đơn vị cho C: So sánh
- 16. Kiểm tra Silverlight: So sánh Watin và Selenium
- 17. Kiểm tra hộp kiểm ASP.NET với jQuery
- 18. định cấu hình requirejs đọc từ node_modules
- 19. Thiết kế kiểm tra so sánh hiệu suất thư viện
- 20. Kiểm tra Camel với MockEndpoints
- 21. Kiểm tra AsyncTaskLoaders với Robolectric
- 22. Kiểm tra phong bì với Ksoap2 (Android)
- 23. So sánh ngày để kiểm tra các tệp cũ
- 24. Mocking với Boost :: Kiểm tra
- 25. Nhập Node.js npm modules (node_modules) & khai báo trong TypeScript
- 26. Kiểm tra giá trị trả về của lower_bound so với trình lặp kết thúc
- 27. So sánh hai đối tượng với một kiểm tra cho null
- 28. NPM: cách nguồn ./node_modules/.bin thư mục?
- 29. ToolTip so với Popup (kiểm soát WPF)
- 30. Radio Button Kiểm tra không kiểm tra
Tính đến hôm nay liên kết bị phá vỡ (500 lỗi) vì vậy đây là một [lưu trữ] (https://gist.github.com/3854887) (gist.github. com/3854887) của bài đăng đó. – Sukima
@Sukima Tôi tin rằng liên kết đã hoạt động trở lại. – Kostia
Nếu tác giả loại bỏ các gói của họ, điều này xảy ra, thì 'shrinkwrap' sẽ không giúp ích gì. –