2012-08-27 32 views
13

Tôi có thể cài đặt nhiều phiên bản của cùng một mô-đun node trên toàn cầu với npm không?Cách cài đặt nhiều phiên bản của cùng một mô-đun node.js?

+0

Bạn có thể sử dụng trình quản lý phiên bản cho Nút để tạo điều kiện thuận lợi cho việc này: https://github.com/isaacs/nave – mikefrey

+0

Và bạn sẽ xử lý như thế nào? Yêu cầu nó? Chạy nó? – Vinz243

+0

@Freyday, https://github.com/isaacs/nave thật thú vị khi biết, nhưng có vẻ như tôi cho phép dễ dàng hoán đổi (và kết hợp?) của 'nhiều phiên bản của' _nodejs_, KHÔNG phải những gì mà Q đã yêu cầu: của ‘node _module_'s’ và tại đây ‘toàn cầu với npm’. Vậy là bạn đã bỏ lỡ phần 'module' của Q chưa? Hoặc nếu không, vui lòng nêu chi tiết giải pháp bạn đang xem (tôi cũng muốn giải pháp cho điều này), lý tưởng là câu trả lời riêng cho câu hỏi này bao gồm trong chế độ Wiki nếu câu trả lời có thể được người khác chỉnh sửa mở rộng nó. Cảm ơn. –

Trả lời

1

Hiện tại không có.

(liên quan: Bạn có thể cài đặt nhiều phiên bản của nút sử dụng với NVM (Node quản lý phiên bản): https://github.com/creationix/nvm)

+1

Tôi nghĩ rằng câu hỏi được đặt ra là cài đặt nhiều phiên bản của một mô-đun nút cụ thể. NVM không được thiết kế để cho phép bạn cài đặt nhiều phiên bản của thời gian chạy Node? –

+0

Khá đúng, sẽ cập nhật câu trả lời –

3

Tôi không nghĩ rằng có một (tốt) cách để làm điều này.

Tuy nhiên, tôi đoán rằng trường hợp sử dụng của bạn là: Bạn có hai dự án yêu cầu các phiên bản khác nhau của gói được cài đặt trên toàn cầu.

Đối với các trường hợp như thế này, tôi thường tránh cài đặt các gói trên toàn cầu hoàn toàn, và cài đặt chúng cục bộ thay vào đó (không có -g). Ví dụ, nếu bạn muốn cài đặt một phiên bản cũ cụ thể của gói "mocha" cho một dự án nào đó, bạn muốn làm

cd ~/src/myproject 
npm install --save-dev [email protected]^1.0.0 

(Lưu ý rằng chúng tôi không sử dụng -g ở đây.) Sau đó gọi nó như thế như vậy:

./node_modules/.bin/mocha 
1

Có thể rất khó duy trì mà không cần viết tập lệnh của riêng bạn để quản lý nó. Đối với điều này, tôi sẽ giả định rằng bạn đang sử dụng MacOS hoặc Linux và bạn đã cài đặt nút trong /usr/local/bin

Khi bạn cài đặt mô-đun chung, npm sẽ đặt mô-đun và các phụ thuộc của nó vào cùng một vị trí mà nút được cài đặt . Thông thường /usr/local/lib/node_modules, sau đó tạo liên kết tượng trưng cho mô-đun đó trong /usr/local/bin. Ví dụ, bạn muốn cài đặt nodemon, vì vậy bạn chạy npm install -g nodemon. NPM cài đặt nodemon để /usr/local/lib/node_modules/nodemon và tạo ra một liên kết tượng trưng tại /usr/local/bin/nodemon trỏ đến /usr/local/lib/node_modules/nodemon/bin/nodemon.js

Cho phép giả định rằng bạn chỉ cần cài đặt [email protected], nhưng đối với một số lý do bạn cũng cần [email protected]

Để có cả hai được cài đặt cùng một lúc, nhưng không xung đột, bạn có thể:

  1. đổi tên thư mục cho bản hiện tại của bạn của nodemon nodemon-nodemon18
  2. tạo nodemon18 liên kết tượng trưng mới sử dụng ln -s /usr/local/bin/nodemon18 /usr/local/lib/node_modules/nodemon/bin/nodemon.js (đừng quên để làm cho nó thực thi)
  3. cài đặt [email protected] qua npm install -g [email protected]

Bây giờ, chạy nodemon từ thiết bị đầu cuối của bạn sẽ chạy [email protected] và chạy nodemon18 sẽ chạy [email protected]

YMMV. Tôi thực sự không khuyên bạn nên làm điều này.

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