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?


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 

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

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?


1

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


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.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.