Como posso alterar o caminho do cache para npm (ou desabilitar completamente o cache) no Windows?

103

Instalei o Node.js na minha máquina de desenvolvimento Windows 7 x64, de maneira 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"

Coloquei o binário x64 do nó principal junto com o gerenciador de pacotes npm emC:\Devel\nodejs . Funciona perfeitamente e posso atualizar o binário principal sem lidar com o instalador.

O único problema que não consigo resolver é mover a pasta de cache. Quando eu instalo um pacote local:

npm install express

... o cache é colocado na %APP_DATA%\npm-cachepasta. Eu gostaria de mudar para:

C:\Devel\nodejs\npm-cache

Como posso alterar a pasta de cache npm ou desativá-la completamente?

Gremo
fonte
1
O local não deveria ser:% APPDATA% \ npm-cache
arni

Respostas:

158

Você pode alterar a pasta de cache do npm usando a npmlinha de comando. (consulte: https://docs.npmjs.com/misc/config e mais especificamente https://docs.npmjs.com/misc/config#cache )

Então você pode querer tentar este comando:

> npm config set cache C:\Devel\nodejs\npm-cache --global 
Jcreignou
fonte
3
Observe também que, se você estiver indo para a rota npmrc, o arquivo npmrc global não está localizado diretamente em $ PREFIX, mas em $ PREFIX \ etc
Henry C
3
Ao fazer isso no Windows 7 usando Cygwin, tive que adicionar uma barra na frente de cada barra invertida para evitar que as barras invertidas fossem removidas.
TJ.
8
Depois de executar, faça um npm config listpara verificar a configuração correta
kampsj
Estou tendo problemas para encontrar o comando que você está se referindo, em qualquer lugar no documento vinculado
AaA
39

Você também pode definir uma variável de ambiente com export npm_config_cache=/path/to/cache(Unix) ou set npm_config_cache=C:\path\to\cache(Win) como uma alternativa para npm config set(isso é verdadeiro para todas as opções de configuração em npm).


Para qualquer pessoa que use o docker, você pode adicionar o env var no tempo de execução com:

docker run -e npm_config_cache=/path/to/cache mydockerimage:tag
chacota
fonte
3
Isso é perfeito para uso no docker. Thx
velop
3

Você também pode fazer o seguinte:

Para ter o caminho do cache como você deseja, para um único pacote durante a instalação:

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

Para ter o caminho do cache como você deseja, para todos os pacotes em package.json:

Basta estar no diretório onde package.json está como de costume e fazer

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

Você pode não encontrar isso na documentação do npm, mas eu tentei com o npm 6 e funciona. Parece que funciona desde o npm 5 [Consulte: Como especificar a pasta de cache no npm5 no comando de instalação?

Luke P. Issac
fonte
0

Além disso, descobri que executar um comando de atualização também funciona - por exemplo:

npm update npm

Por último, pode-se verificar seu diretório npm-cache para ver se está sendo preenchido ou não.

DoesEatOats
fonte
0

No Windows, você pode simplesmente ir para a pasta de cache desejada e fazer npm set cache --global

Stanley85
fonte