2013-08-14 40 views
6

Tôi cố gắng để cài đặt node_module nhưng nhận được lỗi sau:không thể cài đặt node_modules

Ví dụ: NPM cài đặt grunt-preprocess

D:\grunt_pre>npm install grunt-preprocess 
npm http GET https://registry.npmjs.org/grunt-preprocess 
npm http GET https://registry.npmjs.org/grunt-preprocess 
npm http GET https://registry.npmjs.org/grunt-preprocess 
npm ERR! Error: connect ETIMEDOUT 
npm ERR!  at errnoException (net.js:901:11) 
npm ERR!  at Object.afterConnect [as oncomplete] (net.js:892:19) 
npm ERR! If you need help, you may report this log at: 
npm ERR!  <http://github.com/isaacs/npm/issues> 
npm ERR! or email it to: 
npm ERR!  <[email protected]> 

npm ERR! System Windows_NT 6.1.7601 
npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nod 
ejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "grunt-preprocess" 
npm ERR! cwd D:\grunt_pre 
npm ERR! node -v v0.10.15 
npm ERR! npm -v 1.3.5 
npm ERR! syscall connect 
npm ERR! code ETIMEDOUT 
npm ERR! errno ETIMEDOUT 
npm ERR! 
npm ERR! Additional logging details can be found in: 
npm ERR!  D:\grunt_pre\npm-debug.log 
npm ERR! not ok code 0 
+0

Bạn có thể thử truy cập thông qua trình duyệt url sau https://registry.npmjs.org/grunt-preprocess hay không. Nó có trả về dữ liệu không? – Chandu

+0

@Chandu nó có thể truy cập thông qua liên kết mặc dù tôi vẫn nhận được lỗi tương tự khi thử nghiệm. Có nghĩa là kho lưu trữ github của nó hoặc npm đang bị trục trặc. – DeanMWake

Trả lời

20

Việc đăng ký URL trỏ đến https, bạn có thể thử thay đổi nó bằng cách

npm config set registry="http://registry.npmjs.org/" 

và sau đó thử cài đặt các mô-đun. Có thể bạn đang đứng sau một proxy chặn kết nối an toàn (https)

Nếu không hoạt động thì bạn có thể thử tải xuống phiên bản hiện tại của mô-đun bạn đang cố gắng cài đặt từ here

Và hãy chạy lệnh npm install grunt-preprocess-2.3.0.tgz

1

tôi nhận được chính xác những điều tương tự. Mô-đun tồn tại nhưng kho lưu trữ tải xuống thực sự bị ngừng hoạt động hoặc có vấn đề với npm tại thời điểm này. Hãy thử lại sau vài ngày hoặc báo cáo liên kết github.

Chỉnh sửa:

Lỗi bạn nhận được là hết thời gian chờ từ máy chủ hoặc kết nối của bạn. Có thể là do bạn đang đứng sau tường lửa/proxy đang dừng kết nối của bạn.

+0

FYI, Việc cài đặt mô-đun đang hoạt động hoàn toàn tốt, kho lưu trữ không phải là xuống. –

+0

@ Салман Tôi đã nói về cụ thể tải xuống cho grunt-preprocess – DeanMWake

+0

Vâng, tôi cũng đã thử điều đó. 'grunt-preprocess' đang được cài đặt hoàn hảo. Kho lưu trữ có thể hoạt động như thế nào và không hoạt động với một mô-đun? –

0

Hãy thử câu trả lời của @ Canmah. Nếu nó không giúp kiểm tra cấu hình proxy của bạn.

Nếu có proxy, hãy cập nhật sổ đăng ký npm như được đề cập bên dưới và sau đó thử cài đặt mô-đun nút.

@ the command prompt update the 
npm config set proxy <proxyserver>:<port> 
+0

Đó không phải là "Canmah", nhân tiện. Đó là "Салман", chuyển ngữ thành "Salman". –

0

Điều này có thể là một vấn đề với module bin-wrapper mà không tôn trọng proxy và đó là lý do tại sao bạn thấy lỗi ETIMEDOUT khi cố gắng tải về.

Để giải quyết vấn đề, bạn có thể đặt biến môi trường HTTP_PROXY và/hoặc HTTPS_PROXY.
Hoạt động trong Windows/Linux.

The solved bin-wrapper issue.
Commit with fix.

Các mảnh mã kiểm tra vào sửa chữa:

var proxyServer = process.env.HTTPS_PROXY || 
        process.env.https_proxy || 
        process.env.HTTP_PROXY || 
        process.env.http_proxy; 
2

Tôi cũng đã ETIMEDOUT lỗi và đã có thể giải quyết vấn đề bằng cách tắt tường lửa của router của tôi, khởi động lại nó, và quan trọng nhất , định cấu hình số lượng kết nối đồng thời với lệnh npm sau:

npm set maxsockets 3 

Điều này đặt số lượng kết nối tối đa là 3, thay vì mặc định là 50. CLI đã cho phép tùy chọn này từ [email protected] Xem this link để tham khảo thêm.