Làm cách nào để thay đổi đường dẫn bộ đệm ẩn cho npm (hoặc tắt hoàn toàn bộ đệm) trên Windows?


103

Tôi đã cài đặt Node.js trên máy phát triển Windows 7 x64 của mình, theo cách thủ công:

mkdir C:\Devel\nodejs
cd C:\Devel\nodejs
set NODE_PATH=%CD%
setx /M PATH "%PATH%;%NODE_PATH%"
setx /M NODE_PATH "%NODE_PATH%\node_modules"

Tôi đã đặt nút nhị phân x64 nút chính cùng với trình quản lý gói npm vào C:\Devel\nodejs. Hoạt động giống như một sự quyến rũ và tôi có thể cập nhật nhị phân chính mà không cần xử lý trình cài đặt.

Vấn đề duy nhất tôi không thể giải quyết là di chuyển thư mục bộ nhớ cache. Khi tôi cài đặt gói cục bộ:

npm install express

... bộ nhớ cache được đặt trong %APP_DATA%\npm-cachethư mục. Tôi muốn thay đổi nó thành:

C:\Devel\nodejs\npm-cache

Làm cách nào để thay đổi hoặc tắt hoàn toàn thư mục bộ nhớ cache npm?


1
Vị trí không phải là:% APPDATA% \ npm-cache
arni

Câu trả lời:


158

Bạn có thể thay đổi thư mục bộ nhớ cache npm bằng cách sử dụng npmdòng lệnh. (xem: https://docs.npmjs.com/misc/config và cụ thể hơn là https://docs.npmjs.com/misc/config#cache )

Vì vậy, bạn có thể muốn thử lệnh này:

> npm config set cache C:\Devel\nodejs\npm-cache --global 

3
Cũng lưu ý rằng nếu bạn đi xuống tuyến đường npmrc, tệp npmrc toàn cầu không được đặt trực tiếp tại $ PREFIX, mà là ở $ PREFIX \ etc
Henry C

3
Khi thực hiện việc này trên Windows 7 bằng Cygwin, tôi phải thêm dấu gạch chéo phía trước mỗi dấu gạch chéo ngược để tránh các dấu gạch chéo ngược bị xóa.
TJ.

8
Sau khi thực hiện, hãy làm một npm config listđể xác minh cài đặt chính xác
kampsj

Tôi đang gặp rắc rối lệnh phát hiện rằng bạn đang đề cập, bất cứ nơi nào trong tài liệu liên quan
AAA

39

Bạn cũng có thể đặt một biến môi trường với export npm_config_cache=/path/to/cache(Unix) hoặc set npm_config_cache=C:\path\to\cache(Win) thay thế cho npm config set(điều này đúng cho tất cả các tùy chọn cấu hình trong npm).


Đối với bất kỳ ai sử dụng docker, bạn có thể thêm env var khi chạy bằng:

docker run -e npm_config_cache=/path/to/cache mydockerimage:tag

3
Điều này là hoàn hảo để sử dụng trong docker. Thx
velop

3

Bạn cũng có thể làm như sau:

Để có đường dẫn bộ đệm như bạn muốn, cho một gói duy nhất trong khi cài đặt nó:

npm install packageName --cache path/to/some/folder

Để có đường dẫn bộ nhớ cache như bạn muốn, cho tất cả các gói trong package.json:

Chỉ cần ở trong thư mục nơi package.json như bình thường và làm

npm install --cache path/to/some/folder

Bạn có thể không tìm thấy điều này trong tài liệu npm nhưng tôi đã thử nó với npm 6 và nó hoạt động. Có vẻ như nó hoạt động kể từ npm 5 [Tham khảo: Làm thế nào để chỉ định thư mục bộ nhớ cache trong npm5 trên lệnh cài đặt?


0

Ngoài ra, tôi thấy rằng việc chạy lệnh cập nhật cũng hoạt động - ví dụ:

npm update npm

Cuối cùng, người ta có thể kiểm tra thư mục npm-cache của họ để xem liệu có được lấp đầy hay không.


0

Trong Windows, bạn chỉ có thể cd vào thư mục bộ nhớ cache mong muốn và thực hiện npm set cache --global

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.