Comment puis-je modifier le chemin du cache pour npm (ou désactiver complètement le cache) sous Windows?

104

J'ai installé Node.js sur ma machine de développement Windows 7 x64, de manière manuelle:

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"

J'ai placé le principal noeud binaire x64 avec gestionnaire de paquets NPM dans C:\Devel\nodejs. Fonctionne comme un charme et je peux mettre à jour le binaire principal sans avoir à m'occuper de l'installateur.

Le seul problème que je ne peux pas résoudre est le déplacement du dossier de cache. Lorsque j'installe un package local:

npm install express

... le cache est placé sous le %APP_DATA%\npm-cachedossier. Je voudrais le changer en:

C:\Devel\nodejs\npm-cache

Comment puis-je changer le dossier de cache npm ou le désactiver complètement?

gremo
la source
1
L'emplacement ne devrait pas être:% APPDATA% \ npm-cache
arni

Réponses:

159

Vous pouvez modifier le dossier de cache npm à l'aide de la npmligne de commande. (voir: https://docs.npmjs.com/misc/config et plus spécifiquement https://docs.npmjs.com/misc/config#cache )

Vous voudrez peut-être essayer cette commande:

> npm config set cache C:\Devel\nodejs\npm-cache --global 
jcreignou
la source
3
Notez également que si vous allez emprunter la route npmrc, le fichier global npmrc ne se trouve pas directement dans $ PREFIX, mais plutôt dans $ PREFIX \ etc
Henry C
3
En faisant cela sur Windows 7 en utilisant Cygwin, j'ai dû ajouter une barre oblique avant chaque barre oblique inverse pour éviter la suppression des barres obliques inverses.
TJ.
8
Après avoir exécuté, faites un npm config listpour vérifier le réglage correct
kampsj
J'ai du mal à trouver la commande à laquelle vous faites référence, n'importe où dans le document lié
AaA
39

Vous pouvez également définir une variable d'environnement avec export npm_config_cache=/path/to/cache(Unix) ou set npm_config_cache=C:\path\to\cache(Win) comme alternative à npm config set(ceci est vrai pour toutes les options de configuration dans npm).


Pour tous ceux qui utilisent docker, vous pouvez ajouter la var d'environnement au moment de l'exécution avec:

docker run -e npm_config_cache=/path/to/cache mydockerimage:tag
gib
la source
3
Ceci est parfait pour une utilisation dans docker. Thx
velop
3

Vous pouvez également faire ce qui suit:

Pour avoir le chemin du cache comme vous le souhaitez, pour un seul paquet lors de son installation:

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

Pour avoir le chemin du cache comme vous le souhaitez, pour tous les packages de package.json:

Soyez simplement dans le répertoire où package.json est comme d'habitude et faites

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

Vous ne le trouverez peut-être pas dans la documentation de npm, mais je l'ai essayé avec npm 6 et cela fonctionne. On dirait que cela fonctionne depuis npm 5 [Référez-vous: Comment spécifier le dossier de cache dans npm5 sur la commande d'installation?

Luc P. Issac
la source
1

Sous Windows, vous pouvez simplement accéder au dossier de cache souhaité et faire npm set cache --global

Stanley85
la source
0

De plus, j'ai trouvé que l'exécution d'une commande de mise à jour fonctionne également - par exemple:

npm update npm

Enfin, on peut vérifier leur répertoire npm-cache pour voir s'il est rempli ou non.

Mange de l'Avoine
la source