Jak mogę zmienić ścieżkę pamięci podręcznej dla npm (lub całkowicie wyłączyć pamięć podręczną) w systemie Windows?

105

Zainstalowałem Node.js na moim komputerze deweloperskim z systemem Windows 7 x64, w sposób ręczny:

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"

Umieściłem plik binarny głównego węzła x64 wraz z menedżerem pakietów npm w C:\Devel\nodejs. Działa jak urok i mogę zaktualizować główny plik binarny bez zajmowania się instalatorem.

Jedynym problemem, którego nie mogę rozwiązać, jest przeniesienie folderu pamięci podręcznej. Kiedy instaluję pakiet lokalny:

npm install express

... pamięć podręczna jest umieszczona w %APP_DATA%\npm-cachefolderze. Chciałbym to zmienić na:

C:\Devel\nodejs\npm-cache

Jak mogę zmienić folder pamięci podręcznej npm lub całkowicie go wyłączyć?

gremo
źródło
1
Nie powinno to być:% APPDATA% \ npm-cache
arni

Odpowiedzi:

161

Możesz zmienić folder pamięci podręcznej npm za pomocą npmwiersza poleceń. (patrz: https://docs.npmjs.com/misc/config, a dokładniej https://docs.npmjs.com/misc/config#cache )

Możesz więc spróbować tego polecenia:

> npm config set cache C:\Devel\nodejs\npm-cache --global 
jcreignou
źródło
3
Zwróć również uwagę, że jeśli zamierzasz zejść trasą npmrc, globalny plik npmrc nie znajduje się bezpośrednio w $ PREFIX, ale raczej w $ PREFIX \ etc
Henry C,
3
Robiąc to w systemie Windows 7 przy użyciu Cygwin, musiałem dodać ukośnik przed każdym lewym ukośnikiem, aby uniknąć usuwania ukośników odwrotnych.
TJ.
8
Po wykonaniu zrób a, npm config listaby sprawdzić poprawność ustawień
kampsj
Mam problem ze znalezieniem polecenia, do którego się odnosisz, w dowolnym miejscu w powiązanym dokumencie
AaA,
40

Możesz również ustawić zmienną środowiskową za pomocą export npm_config_cache=/path/to/cache(Unix) lub set npm_config_cache=C:\path\to\cache(Win) jako alternatywę npm config set(dotyczy to wszystkich opcji konfiguracyjnych w npm).


Dla każdego używającego Dockera możesz dodać zmienną env w czasie wykonywania za pomocą:

docker run -e npm_config_cache=/path/to/cache mydockerimage:tag
klin
źródło
3
To jest idealne do użycia w dockerze. Dzięki
velop
3

Możesz również wykonać następujące czynności:

Aby mieć dowolną ścieżkę pamięci podręcznej dla pojedynczego pakietu podczas jego instalacji:

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

Aby mieć dowolną ścieżkę pamięci podręcznej dla wszystkich pakietów w package.json:

Po prostu bądź w katalogu, w którym znajduje się package.json, i zrób

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

Możesz nie znaleźć tego w dokumentacji npm, ale wypróbowałem to z npm 6 i działa. Wygląda na to, że działa od npm 5 [Patrz: Jak określić folder pamięci podręcznej w npm5 przy poleceniu instalacji?

Luke P. Issac
źródło
1

W systemie Windows możesz po prostu cd do żądanego folderu pamięci podręcznej i zrobić npm set cache --global

Stanley85
źródło
0

Poza tym stwierdziłem, że działa też uruchomienie polecenia update - na przykład:

npm update npm

Na koniec można sprawdzić ich katalog npm-cache, aby zobaczyć, czy jest zapełniany, czy nie.

DoesEatOats
źródło