Căn cứ ý kiến từ https://github.com/creationix/nvm/pull/97:
Khi cài đặt gói với NPM sử dụng công tắc toàn cầu -g gói kết thúc trong thư mục thích hợp (ví dụ: .nvm/$ VERSION/lib/node_modules) Tuy nhiên, nút không thể yêu cầu nó vì nó bằng cách nào đó không tìm kiếm trên tiền tố của nó.
Vì vậy, sử dụng npm install -g xxxxx
sẽ đặt mô-đun vào đúng vị trí cho NVM nhưng nếu bạn cố gắng require
một trong số họ không thể tìm thấy mô-đun. Tôi vẫn đang chơi xung quanh với điều này và sẽ cập nhật nếu tôi tìm thấy một giải pháp.
Cập nhật
đâu NPM đặt node_modules? (xem https://docs.npmjs.com/files/folders)
- Cài đặt cục bộ (mặc định): đặt nội dung vào ./node_modules của gói gốc hiện tại.
- Cài đặt chung (với -g): đặt nội dung vào/usr/local hoặc bất cứ nơi nào nút được cài đặt.
- Cài đặt cục bộ nếu bạn định truy cập
require()
.
- Cài đặt nó trên toàn cầu nếu bạn định chạy nó trên dòng lệnh.
- Nếu bạn cần cả hai, hãy cài đặt ở cả hai nơi hoặc sử dụng
npm link
.
Vì vậy, những gì tôi đã làm là chạy npm init
(xem http://npmjs.org/doc/init.html) trong thư mục gốc của dự án của tôi đã tạo package.json. Bây giờ khi tôi chạy npm install xxxxx
nó tạo ra một dir node_modules trong thư mục dự án của tôi (mà tôi thêm vào .gitignore của tôi). Điều này làm việc cho các mô-đun mà tôi yêu cầu trong mã của tôi.
Đối với các lệnh như CoffeeScript tôi cài đặt với npm install -g coffee-script
, đặt nó vào đúng thư mục (.nvm/$ VERSION/lib/node_modules). Mặc dù tôi không thể yêu cầu các mô-đun này (liên kết npm nên giải quyết vấn đề này) Tôi có thể chạy các lệnh - tức là coffee
.
Nguồn
2012-04-06 14:13:20
Cuối cùng là một câu trả lời hay cho việc này, đã đập đầu tôi vào lúc này. –