2013-06-03 19 views
11

Tôi đã sử dụng Node.js và npm trong một vài tuần với thành công lớn và đã bắt đầu đặt câu hỏi về phương pháp hay nhất để cài đặt mô-đun cục bộ. Tuy nhiên, tôi hiểu được Global vs Local argument, câu hỏi của tôi có liên quan nhiều hơn đến vị trí đặt cài đặt cục bộ. Hãy nói rằng tôi có một dự án nằm ở ~/ProjectA/ là phiên bản được kiểm soát và làm việc bởi nhiều nhà phát triển. Khi ban đầu chơi với Node.js và npm tôi đã không nhận thức được đường dẫn cài đặt mặc định địa phương và chỉ cần cài đặt các mô-đun cần thiết trong thiết bị đầu cuối mặc định dẫn đến đường dẫn cài đặt ~/node_modules. Điều này cuối cùng đã làm là yêu cầu tất cả các nhà phát triển khác làm việc trên dự án để cài đặt các mô-đun trên máy riêng của họ để chạy ứng dụng. Đã thấy nơi một số nhà phát triển chạy npm install Tôi vẫn thực sự ngạc nhiên khi nó hoạt động trên máy của họ cả (tôi đoán nó liên quan đến how Node.js and require() looks for modules), nhưng không cần phải nói, nó hoạt động.Hiểu vị trí của npm và Node.js đối với các mô-đun

Bây giờ dự án đang vượt qua giai đoạn "đùa giỡn", tôi muốn thiết lập thư mục dự án một cách chính xác. Vì vậy, câu hỏi của tôi là, các mô-đun có được cài đặt tại ~/ProjectA/node_modules và do đó là một phần của các tệp dự án được kiểm soát phiên bản hay không hoặc nó sẽ tiếp tục được đặt tại vị trí máy phát triển cụ thể ... hay không thực sự quan trọng?

Tôi chỉ đang tìm kiếm một hướng dẫn nhỏ "thực hành tốt nhất" về vấn đề này và những gì người khác làm khi thiết lập dự án của bạn.

+0

Đọc https://npmjs.org/doc/developers.html. Ứng dụng của bạn có 'package.json' không? –

Trả lời

9

Tôi nghĩ rằng "thực hành tốt nhất" ở đây là giữ các phụ thuộc trong thư mục dự án.
Hầu như tất cả các dự án Node tôi đã nhìn thấy cho đến nay (tôi là một nhà phát triển Node đã có khoảng 8 tháng nay) làm điều đó.

Bạn không cần phiên bản kiểm soát các phụ thuộc. Đó là cách tôi quản lý dự án Node tôi:

  1. Giữ các phiên bản bị khóa trong file package.json, vì vậy tất cả mọi người được phiên bản làm việc cùng, hoặc sử dụng lệnh npm shrinkwrap ở gốc của dự án của bạn.
  2. Thêm thư mục node_modules vào tệp bỏ qua VCS của bạn (Tôi sử dụng git, vì vậy, tôi là .gitignore)
  3. Vui lòng, bạn đã hoàn tất!
+6

Để đảm bảo mọi người đều có cùng phiên bản phụ thuộc, bạn nên sử dụng 'npm shrinkwrap' https://npmjs.org/doc/shrinkwrap.html –

+0

Đã thêm vào câu trả lời, cảm ơn – gustavohenke

+1

Vì vậy, có vẻ như tôi đang ở trên đi đúng hướng. Nó có vẻ hợp lý để chỉ đơn giản là loại trừ các '' node_modules'' từ kiểm soát phiên bản nhưng tôi đã không rõ ràng như thế nào sau đó tôi quản lý các gói của mọi người. Có vẻ như là thông qua tệp '' package.json'' hoặc lệnh '' npm shrinkwrap'' và đó là liên kết còn thiếu. Cảm ơn đã giúp đỡ! – Sanuden

Các vấn đề liên quan