'npm cài đặt' cực kỳ chậm trên Windows


81

Đối với tôi là npm installcực kỳ chậm. Tôi đang sử dụng Windows 8.1 với phiên bản npm mới nhất. Tốc độ kết nối của tôi là khoảng 100Mbit / s.

Dự án tôi đang cố gắng cài đặt có khoảng 20 gói / phần phụ thuộc và mất khoảng 30 phút để cài đặt tất cả các phần phụ thuộc ...

Có ai có gợi ý gì không?


2
Tôi cũng gặp vấn đề này hôm nay. Hộp windows 8.1 mới được xây dựng hợp lý, tôi đã cài đặt node.js và npm hôm nay. npm install đang chạy rất chậm khi cố gắng cài đặt bower. npm v2.7.4 nodejs v0.12.2
Stuntbeaver

@Simon Knittel Bạn đã giải quyết được chưa?
Tomasz Waszczyk,

@PantaRhei Tôi không biết đó có phải là giải pháp hay không nhưng nó đã tạo ra sự khác biệt cho tôi cho dù tôi cài đặt các mô-đun trên ổ USB3 hay ổ cứng gắn trong.
Simon Knittel

@simon nó có thể được kết nối tường lửa chặn của bạn bằng cách khác làm cho bạn cập nhật Nodejs và NPM
Seif Tamallah

@Pnta bạn có thể thử cập nhật Nodejs và NPM và vô hiệu hóa tường lửa
Seif Tamallah

Câu trả lời:


33

Tôi gặp phải vấn đề tương tự, sử dụng --verbosenhư peterh đã đề cập cho tôi thấy nguồn gốc của vấn đề: Tôi đứng sau proxy, sử dụng chứng chỉ riêng của nó cho các kết nối https. Theo người dùng "Mletter1" trên https://github.com/npm/npm/issues/8872 , vấn đề được giải quyết khá dễ dàng bằng cách sử dụng http:

npm config set registry http://registry.npmjs.org/ --global

Và voilà, nó nhanh trở lại. Tất nhiên bạn chỉ nên làm điều này, nếu bạn thấy ổn với thông tin rõ ràng npm qua mạng ;-)


Chỉ gặp sự cố này khi sử dụng Windows WSL chống lại VirtualBox Docker (Hộp công cụ). NPM chậm như bùn, chuyển hướng WSL (debian) của tôi đến http npmjs.org đã đẩy mọi thứ lên đáng kể.
deepelement

Để thêm một liên kết hữu ích khác, có vẻ như việc sử dụng WSL NPM cũng bị ảnh hưởng bởi Bộ bảo vệ Windows. gist.github.com/noelbundick/9c804a710eb76e1d6a234b14abf42a52
deepelement

4
Nhưng điều đó không phải là không an toàn? Cho bạn thấy các cuộc tấn công MIM
GiriB

17

Tuyên bố từ chối trách nhiệm. Mối quan tâm về bảo mật: hy vọng bạn biết những gì bạn tải xuống thư mục node_modules của mình, bạn có;)

Từ vĩnh cửu → đến 5 giây xây dựng :

  • tìm kiếm cài đặt Windows Defender
  • → Bảo vệ khỏi mối đe dọa và vi rút
  • → Cài đặt bảo vệ chống vi-rút và mối đe dọa
  • → Loại trừ

tại đây thêm hai đường dẫn này vào danh sách các thư mục bảo vệ thời gian thực bị loại trừ của bạn :

C:\Program Files\nodejs
C:\Users\<your username>\AppData\Roaming\npm

Tái bút : thay thế <your username>bằng tên thư mục Người dùng tương ứng của bạn .
Nếu bạn đang lang thang tại sao bạn không thể tìm thấy thư mục AppData trong Explorer, hãy đảm bảo chọn Tùy chọn xem cho các thư mục ẩn.


1
Nó hoạt động tốt đối với tôi, cũng nên thêm vào thư mục không gian làm việc, nơi bạn có các thư mục node_modules cục bộ cho các dự án.
Xun Yang

@Chet cho tôi biết khi bạn làm cho nó hoạt những gì bạn đã làm
Roko C. Buljan

Tôi đã đi vào trình bảo vệ và tắt tất cả bảo vệ chống vi rút và mối đe dọa, tất cả bảo vệ mạng và tường lửa, tắt "kiểm tra ứng dụng và tệp". Tôi cũng đã thêm một số cài đặt npm để thay đổi tiến trình và đặt url đăng ký thành http thay vì https. Bây giờ nó nhanh hơn một chút.
Chet

4
@Chet yap, nhiễm virus nên đi nhanh hơn bây giờ 🙈
Roko C. Buljan

1
Đó là kế hoạch! 🤞
Chet

11

Tôi đã đối mặt với cùng một vấn đề trong một thời gian. Tôi đã thử những thứ sau đây

npm i typescript live-server --save-dev

Quá trình cài đặt sẽ bị mắc kẹt mãi mãi. Tuy nhiên, việc thêm cờ -verbose hoạt động tốt.


2
Nhưng tại sao lại -verbosetạo ra sự khác biệt?
Itamar Bitton


4

Có vẻ như npm không xử lý tốt các kết nối internet và đôi khi có thể kết thúc trong tình huống như vậy.

1) Tôi sẽ khuyên bạn nên kiểm tra xem tường lửa hoặc chương trình chống vi-rút của bạn có thực hiện bất kỳ quá trình quét hoặc lọc nào có thể làm chậm quá trình cài đặt npm hay không.

2) Bạn cũng có thể sử dụng bộ nhớ đệm từ npm như bên dưới.

npm install package-name --cache "c:\path\to\use\as\dependencies\cache"

điều này sẽ cho phép tải xuống npm và phụ thuộc vào bộ nhớ cache trong thư mục bạn đã chỉ định.

3) một giải pháp khác để lưu vào bộ đệm ẩn các gói npm là npm lazy , bạn có thể tìm thêm thông tin về điều này tại trang web npm Lazy

Lưu ý: quá trình lưu vào bộ nhớ đệm có thể cải thiện hoặc không thể cải thiện tốc độ tải xuống nhưng nó có thể sẽ tiết kiệm thời gian tải xuống khi cài đặt hoặc cập nhật các gói npm của bạn.


3

Tắt Tường lửa của Windows và Bộ bảo vệ Windows Tính năng bảo vệ theo thời gian thực đã làm điều đó cho tôi trong Windows 10.


2

Đối với tôi, nó dường như là một vấn đề với IPv6.

Việc tắt IPv6 đã giúp ích rất nhiều cho tôi.
Với IPv6 được bật "update-package newtonsoft.json" mất 1:45 để hết thời gian với lỗi "update-package: A task đã bị hủy."

Với IPv6 bị vô hiệu hóa, "update-package newtonsoft.json" hoàn tất trong 10 giây


Vô hiệu hóa IPv6 giúp tôi với vấn đề tương tự trên Fedora 23
malloc4k

1

Tôi gặp phải vấn đề tương tự khi tạo dự án trong khi sử dụng angle cli "ng new PROJECT_NAME", lệnh này kích hoạt "npm -install" sau khi tạo dự án, mất quá nhiều thời gian để cài đặt và bị kẹt ở "Cài đặt gói công cụ qua npm". Làm theo những điều này đã làm việc cho tôi

1) Kiểm tra phiên bản npm của bạn "npm --version" (phải cao hơn 2.1.8) Cập nhật gói npm của bạn bằng cách "npm -g install - lưu phiên bản mới nhất"

2) Xóa thanh tiến trình tiêu tốn nhiều thời gian hơn "npm set process = false"

kiểm tra sự cố này nếu vẫn không khắc phục được sự cố của bạn https://github.com/nodejs/node/issues/4150 https://github.com/npm/npm/issues/11283

Hy vọng rằng điều này sẽ giải quyết vấn đề Cheers!


1

Việc tắt Tường lửa của Bộ bảo vệ Windows đã giúp ích cho tôi.

Vì cảm thấy không ổn, lần đầu tiên tôi đã thêm WIFI vào Mạng riêng (thông qua cài đặt WIFI) và chỉ tắt Bộ bảo vệ Windows cho Mạng riêng thay vì tất cả các Mạng công cộng.

Bước tiếp theo nên là: lưu lượng mạng nào gây ra điều này và cách thêm điều này vào quy tắc ngoại lệ của Bộ bảo vệ Windows :)


0

Tôi đã thử tất cả các cấu hình (proxy, đăng ký, v.v.) không có gì hiệu quả với tôi, vì vậy, gỡ cài đặt hoàn chỉnh và cài đặt nút & npm. Điều đó đã giúp giải quyết vấn đề.


0

Tắt hoàn toàn tính năng bảo vệ chống vi-rút và tường lửa không phải là lựa chọn an toàn nhất. Trong khi nó làm cho mọi thứ nhanh hơn, nó khiến bạn dễ bị tổn thương hơn.

Trong trường hợp của tôi, tôi chỉ loại trừ quy trình node.exe trong bảo vệ chống vi-rút & mối đe dọa.

  • Trong menu bắt đầu của bạn, nhập "bảo mật cửa sổ" và mở ứng dụng.
  • Nhấp vào "Bảo vệ chống vi-rút và mối đe dọa"
  • Cài đặt chống vi-rút & mối đe dọa => Quản lý cài đặt
  • Loại trừ => Thêm hoặc xóa loại trừ
  • Thêm một loại trừ => process => gõ node.exe => nhấp vào Thêm

chỉ một ứng dụng tạo-phản ứng đơn giản đã giảm từ 2 phút 40 giây xuống 1 phút 10 giây các lệnh npm cũng được thực thi bởi node.exe, vì vậy những cải tiến tương tự cũng được nhận thấy ở đó.


0

Đảm bảo rằng bạn thực sự đang sử dụng phiên bản npm gần đây. Trong trường hợp của tôi, C:\Program Files\nodejs\npm.cmdđã sử dụng thư mục cũ npm-cli.jsbên dưới prefixthư mục mặc định %appdata%\npmthay vì mới hơn npm-cli.jsbên dưới C:\Program Files\nodejs.

Đặt biến môi trường npm_config_prefix để C:\Program Files\nodejsgiải quyết điều đó. (Trước khi tìm ra giải pháp đó, tôi đã thử sử dụng --prefix đối số và tìm ra cách khó để làm như vậy " buộc các lệnh không phải toàn cục phải chạy trong thư mục được chỉ định " .)

Tôi nhận thấy sự gia tăng hiệu suất rất lớn từ 3.10.9 lên 6.13.4 - đủ để làm cho npm installthời gian có thể chấp nhận được bất chấp sự can thiệp của phần mềm chống vi-rút.


0

Tôi vừa đi qua một lỗ hổng để cố gắng xác định vấn đề. Nếu cài đặt npm tiếp tục bị tắc nghẽn, bạn nên cân nhắc nhiều đến việc sửa đổi các thuộc tính của ethernet ảo của mình và tắt tất cả các mục giảm tải .

Tôi đã gặp 0 proxy hoặc sự cố bộ nhớ đệm với npm.

Xem ở đây để biết hướng dẫn về cách truy cập menu và tắt cài đặt giảm tải của bạn. Đảm bảo rằng bạn làm điều này cho cả ethernet và VEthernet của mình và bạn sẽ ngay lập tức nhận thấy sự khác biệt. Tôi đã đi từ độ phân giải treo 10 phút mà đôi khi chỉ dừng lại xuống 10 giây cài đặt. https://www.dincloud.com/blog/tuning-windows-get-15x-speeds-on-large-file-copies-today

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.