¿Cómo puedo cambiar la ruta del caché para npm (o deshabilitar completamente el caché) en Windows?

103

He instalado Node.js en mi máquina de desarrollo con Windows 7 x64, de forma manual:

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"

Coloqué el binario x64 del nodo principal junto con el administrador de paquetes npm en C:\Devel\nodejs. Funciona como un encanto y puedo actualizar el binario principal sin tener que lidiar con el instalador.

El único problema que no puedo resolver es mover la carpeta de caché. Cuando instalo un paquete local:

npm install express

... la caché se coloca en la %APP_DATA%\npm-cachecarpeta. Me gustaría cambiarlo a:

C:\Devel\nodejs\npm-cache

¿Cómo puedo cambiar la carpeta de caché npm o deshabilitarla por completo?

gremo
fuente
1
¿No debería ser la ubicación:% APPDATA% \ npm-cache
arni

Respuestas:

158

Puede cambiar la carpeta de caché de npm usando la npmlínea de comando. (ver: https://docs.npmjs.com/misc/config y más específicamente https://docs.npmjs.com/misc/config#cache )

Entonces, es posible que desee probar este comando:

> npm config set cache C:\Devel\nodejs\npm-cache --global 
jcreignou
fuente
3
También tenga en cuenta que si va a seguir la ruta npmrc, el archivo npmrc global no se encuentra directamente en $ PREFIX, sino en $ PREFIX \ etc
Henry C
3
Al hacer esto en Windows 7 usando Cygwin, tuve que agregar una barra diagonal delante de cada barra invertida para evitar que se eliminen.
TJ.
8
Después de ejecutar, haga un npm config listpara verificar la configuración correcta
kampsj
Tengo problemas para encontrar el comando al que se refiere, en cualquier parte del documento vinculado
AaA
39

También puede establecer una variable de entorno con export npm_config_cache=/path/to/cache(Unix) o set npm_config_cache=C:\path\to\cache(Win) como alternativa a npm config set(esto es cierto para todas las opciones de configuración en npm).


Para cualquiera que use Docker, puede agregar env var en tiempo de ejecución con:

docker run -e npm_config_cache=/path/to/cache mydockerimage:tag
Gibraltar
fuente
3
Esto es perfecto para usar en Docker. THX
Velop
3

También puede hacer lo siguiente:

Para tener la ruta de caché que desee, para un solo paquete mientras lo instala:

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

Para tener la ruta de caché como desee, para todos los paquetes en package.json:

Simplemente esté en el directorio donde package.json es como de costumbre y haga

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

Es posible que no encuentre esto en la documentación de npm, pero lo he probado con npm 6 y funciona. Parece que funciona desde npm 5 [Consulte: ¿Cómo especificar la carpeta de caché en npm5 en el comando de instalación?

Luke P. Issac
fuente
0

Además, descubrí que ejecutar un comando de actualización también funciona, por ejemplo:

npm update npm

Por último, uno puede verificar su directorio npm-cache para ver si se está llenando o no.

¿ComeAvena
fuente
0

En Windows, simplemente puede acceder a la carpeta de caché deseada y hacer npm set cache --global

Stanley85
fuente