¿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?


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 

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

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?


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.


0

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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.