2012-08-30 26 views
5

Tôi đã cài đặt node.js v0.8.8 cả từ trình cài đặt pkg và được biên dịch từ nguồn. Tuy nhiên, tôi nhận được lỗi sau khi cố gắng chạy npm. Bất kỳ trợ giúp sẽ được đánh giá cao.node.js trên Mac OS X npm "Lỗi: Không có mô-đun như vậy"

> $ npm --help 
> 
> /usr/lib/node_modules/npm/lib/utils/config-defs.js:5 , stdio = 
> process.binding("stdio") 
>     ^Error: No such module 
>  at Object.<anonymous> (/usr/lib/node_modules/npm/lib/utils/config-defs.js:5:21) 
>  at Module._compile (module.js:449:26) 
>  at Object.Module._extensions..js (module.js:467:10) 
>  at Module.load (module.js:356:32) 
>  at Function.Module._load (module.js:312:12) 
>  at Module.require (module.js:362:17) 
>  at require (module.js:378:17) 
>  at Object.<anonymous> (/usr/lib/node_modules/npm/lib/utils/ini.js:43:18) 
>  at Module._compile (module.js:449:26) 
>  at Object.Module._extensions..js (module.js:467:10) 
+1

Hehehe, "không có mô-đun hút". Đừng sửa nó. :) –

Trả lời

3

Có thể bạn đang sử dụng phiên bản NPM cũ bằng cách nào đó. xem: npm issue

+3

Cảm ơn, tôi đã phải sao chép git repo (git: //github.com/isaacs/npm.git), sau đó phải xóa thủ công mọi thứ/usr/lib/node_modules/npm và/usr/bin/npm *) sau đó chạy "sudo make install") –

+0

Huh ... Tôi tự hỏi tại sao nút không ghi đè lên npm nhị phân khi bạn biên dịch nó từ src ... – xen

9

Tôi đã nâng cấp chính xác vấn đề tương tự từ Node.JS 0,4 đến 0,8. Những gì đã làm việc cho tôi như sau:

Trình cài đặt gói OSX không đúng, không loại bỏ cài đặt 0,4 npm cũ trong/usr/bin, sau đó xung đột với 0,8 mới trong/usr/local/bin. Nó chỉ ghi đè bất cứ điều gì đã có. Tôi nuked cũ bằng cách xóa nó, nhưng để chắc chắn, tôi quyết định một cài đặt sạch sẽ tốt hơn:

curl https://npmjs.org/install.sh | sudo clean=yes sh

Có một vấn đề cuối cùng: sau khi cài đặt, mặc dù một which npm trả về đúng /usr/local/bin/npm, bash cố gắng thực hiện từ/usr/bin. Điều này là do trên OSX, bash đã băm tên thực thi. Hàm băm lưu các tìm kiếm lặp lại của tất cả các thư mục trong PATH của bạn mỗi khi bạn thực thi các chương trình thông thường. A hash -r tại dòng lệnh đã giải quyết vấn đề này.

+1

Không may mắn về điều này đối với tôi, nâng cấp từ nút 0,4 đến 0,10. – SimplGy