Wie kann ich den Cache-Pfad für npm unter Windows ändern (oder den Cache vollständig deaktivieren)?


102

Ich habe Node.js auf meinem Windows 7 x64-Entwicklungscomputer manuell installiert:

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"

Ich habe den Hauptknoten x64 binär zusammen mit npm Paketmanager in platziert C:\Devel\nodejs. Funktioniert wie ein Zauber und ich kann die Hauptbinärdatei aktualisieren, ohne mich um das Installationsprogramm zu kümmern.

Das einzige Problem, das ich nicht lösen kann, ist das Verschieben des Cache-Ordners. Wenn ich ein lokales Paket installiere:

npm install express

... Cache wird unter %APP_DATA%\npm-cacheOrdner gelegt. Ich möchte es ändern in:

C:\Devel\nodejs\npm-cache

Wie kann ich den npm-Cache-Ordner ändern oder vollständig deaktivieren?


1
Sollte der Speicherort nicht sein:% APPDATA% \ npm-cache
arni

Antworten:


158

Sie können den npm-Cache-Ordner über die npmBefehlszeile ändern . (Siehe: https://docs.npmjs.com/misc/config und genauer https://docs.npmjs.com/misc/config#cache )

Vielleicht möchten Sie diesen Befehl ausprobieren:

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

3
Beachten Sie auch, dass sich die globale npmrc-Datei nicht direkt bei $ PREFIX befindet, sondern bei $ PREFIX \ etc
Henry C

3
Wenn ich dies unter Windows 7 mit Cygwin mache, musste ich vor jedem Backslash einen Schrägstrich einfügen, um zu vermeiden, dass die Backslashes entfernt werden.
TJ.

8
Nach der Ausführung machen Sie eine npm config list, um die korrekte Einstellung zu überprüfen
kampsj

Ich habe Probleme, einen Befehl zu finden, auf den Sie sich beziehen, irgendwo im verknüpften Dokument
AaA

38

Sie können alternativ auch eine Umgebungsvariable mit export npm_config_cache=/path/to/cache(Unix) oder set npm_config_cache=C:\path\to\cache(Win) festlegen npm config set(dies gilt für alle Konfigurationsoptionen in npm).


Für jeden, der Docker verwendet, können Sie die env var zur Laufzeit hinzufügen mit:

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

3
Dies ist perfekt für den Einsatz im Docker. Thx
velop

3

Sie können auch Folgendes tun:

Für den gewünschten Cache-Pfad für ein einzelnes Paket während der Installation:

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

Für den gewünschten Cache-Pfad für alle Pakete in package.json:

Seien Sie einfach in dem Verzeichnis, in dem sich package.json wie gewohnt befindet, und tun Sie dies

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

Sie finden dies möglicherweise nicht in der npm-Dokumentation, aber ich habe es mit npm 6 versucht und es funktioniert. Sieht so aus, als ob es seit npm 5 funktioniert. [Siehe: Wie wird der Cache-Ordner in npm5 beim Installationsbefehl angegeben?


0

Außerdem habe ich festgestellt, dass das Ausführen eines Aktualisierungsbefehls auch funktioniert - zum Beispiel:

npm update npm

Zuletzt kann man das npm-Cache-Verzeichnis überprüfen, um festzustellen, ob es gefüllt ist oder nicht.


0

In Windows können Sie einfach in den gewünschten Cache-Ordner cd und tun npm set cache --global

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.