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.