Bagaimana cara mengubah jalur cache untuk npm (atau menonaktifkan cache sepenuhnya) di Windows?

104

Saya telah menginstal Node.js di mesin pengembangan Windows 7 x64 saya, dengan cara manual:

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"

Saya telah menempatkan node utama x64 biner bersama dengan manajer paket npm di C:\Devel\nodejs. Bekerja seperti pesona dan saya dapat memperbarui biner utama tanpa berurusan dengan penginstal.

Satu-satunya masalah yang tidak bisa saya selesaikan adalah memindahkan folder cache. Ketika saya menginstal paket lokal:

npm install express

... cache ditempatkan di bawah %APP_DATA%\npm-cachefolder. Saya ingin mengubahnya menjadi:

C:\Devel\nodejs\npm-cache

Bagaimana cara mengubah folder cache npm, atau menonaktifkannya sepenuhnya?

gremo
sumber
1
Seharusnya lokasinya tidak:% APPDATA% \ npm-cache
arni

Jawaban:

159

Anda dapat mengubah folder cache npm menggunakan npmbaris perintah. (lihat: https://docs.npmjs.com/misc/config dan lebih khusus lagi https://docs.npmjs.com/misc/config#cache )

Jadi Anda mungkin ingin mencoba perintah ini:

> npm config set cache C:\Devel\nodejs\npm-cache --global 
jcreignou.dll
sumber
3
Perhatikan juga bahwa jika Anda akan menggunakan rute npmrc, file npmrc global tidak terletak langsung di $ PREFIX, melainkan di $ PREFIX \ etc
Henry C
3
Saat melakukan ini pada Windows 7 menggunakan Cygwin saya harus menambahkan garis miring di depan setiap garis miring terbalik untuk menghindari garis miring terbalik dihapus.
TJ.
8
Setelah menjalankan lakukan a npm config listuntuk memverifikasi pengaturan yang benar
kampsj
Saya kesulitan menemukan perintah yang Anda maksud, di mana saja dalam dokumen tertaut
AaA
39

Anda juga dapat menyetel variabel lingkungan dengan export npm_config_cache=/path/to/cache(Unix) atau set npm_config_cache=C:\path\to\cache(Win) sebagai alternatif npm config set(ini berlaku untuk semua opsi konfigurasi di npm).


Bagi siapa pun yang menggunakan buruh pelabuhan, Anda dapat menambahkan env var saat runtime dengan:

docker run -e npm_config_cache=/path/to/cache mydockerimage:tag
Gib
sumber
3
Ini sangat cocok untuk digunakan di buruh pelabuhan. Thx
velop
3

Anda juga dapat melakukan hal berikut:

Untuk memiliki jalur cache sesuai keinginan, untuk satu paket saat menginstalnya:

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

Untuk memiliki jalur cache sesuai keinginan, untuk semua paket di package.json:

Cukup berada di direktori tempat package.json seperti biasa dan lakukan

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

Anda mungkin tidak menemukan ini di dokumentasi npm tetapi saya telah mencobanya dengan npm 6 dan berhasil. Sepertinya ini berfungsi sejak npm 5 [Lihat: Bagaimana cara menentukan folder cache di npm5 pada perintah install?

Luke P. Issac
sumber
1

Di Windows Anda cukup cd ke folder cache yang diinginkan dan lakukan npm set cache --global

Stanley85
sumber
0

Selain itu, saya menemukan bahwa menjalankan perintah pembaruan juga berfungsi - misalnya:

npm update npm

Terakhir, seseorang dapat memeriksa direktori npm-cache mereka untuk melihat apakah terisi atau tidak.

DoesEatOats
sumber