npm ERR! Recusando-se a deletar / codificar EEXIST


86

Estou apenas executando um simples npm installe recebo este erro.

npm ERR! path /Users/jasonazoulay/Desktop/fabrick.io/delegation/node_modules/@angular/cli/node_modules/webpack/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/node_modules/.bin/which
npm ERR! code EEXIST
npm ERR! Refusing to delete /Users/jasonazoulay/Desktop/fabrick.io/delegation/node_modules/@angular/cli/node_modules/webpack/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/node_modules/.bin/which: is outside /Users/jasonazoulay/Desktop/fabrick.io/delegation/node_modules/@angular/cli/node_modules/webpack/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/node_modules/which and not a link
npm ERR! File exists: /Users/jasonazoulay/Desktop/fabrick.io/delegation/node_modules/@angular/cli/node_modules/webpack/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/node_modules/.bin/which
npm ERR! Move it away, and try again

É a primeira vez que recebo esse erro e não sei o que fazer.


você também já tentou correr sudo npm install?
antzshrek,

Sim, fez o mesmo
Azoulay Jason,

1
Eu também vi esse problema quando estava hospedando um projeto em uma pasta que estava sendo sincronizada com o Google File Stream. Depois de mover o projeto para um "disco local", consegui executá-lonpm install
Trevor

Respostas:


134

Passos

  1. Exclua o node_modulesdiretório completamente.
  2. Corra npm installnovamente.

Isso deve ajudar.


Falha ao instalar depois de fazer isso, com npm-cli.js ausente. Acabei fazendo a solução de renomeação abaixo junto com a remoção de arquivos npx
David Bradley

isso funciona, sim, mas a exclusão e a instalação demoram muito. esta solução não é a ideal.
jasie

1
Agora recebo "Não é possível encontrar o módulo C: \ Arquivos de programas \ nodejs \ node_modules \ npm \ bin \ npm-cli.js '
David Klempfner

1
@DavidKlempfner você pode querer verificar esta outra resposta do SO stackoverflow.com/questions/24721903/…
antzshrek

27

Foi assim que resolvi o meu depois de 'pesquisar' no Google ...

  • Navegue até o diretório em que seu nó foi instalado
  • renomeie seus arquivos npm.cmdenpm
  • Tente executar a instalação novamente
  • Se for bem-sucedido, exclua os arquivos renomeados anteriormente npmenpm.cmd
  • se não, :( :(

Os comandos cli aqui ... caso você não queira renomear e outros

cd %ProgramFiles%\nodejs
ren npm.cmd npm2.cmd
ren npm npm2 
npm2 install npm@latest -g

del npm2
del npm2.cmd

Rolf-schmidiger


4
Essa resposta funcionou para mim, mas também tive que renomear npx.cmd e npx para npx2.cmd e npx2. Eu também tive que executar o terminal como administrador.
raphadko de

4
Isso funcionou para mim também. Tive que renomear npx e npx.cmd, bem como npm e npm.cmd. Em seguida, fiz "npm_ update -g npm" e funcionou. Talvez tenha algo a ver com o fato de que eu não instalei nodejs por meio de um instalador, mas o extraí de um arquivo zip.
Igor

1
também precisa renomear npx.cmd
Reza

1
Excluí os arquivos npx em vez de renomeá-los que funcionavam, novos foram criados.
David Bradley

2
Isso funcionou para mim também. @DavidKlempfner execute o comando usando npm2 agora que ele foi renomeado. Depois disso, eu tive um problema sobre Recusar-se a excluir `... \ npm \ node_modules * \ node_modules \ .bin * Eu apenas excluí manualmente as pastas .bin toda vez que reclamavam (duas ou três vezes) e funcionava.
Zakk Diaz

7

Tente correr npm update -g npme execute npm inovamente.
Se isso não funcionar, talvez npm cache cleanajude.

Se isso também não funcionar, você deve considerar remover a node_modulespasta em seu aplicativo e executar npm inovamente.
Se você ainda não tiver sorte, sugiro remover o package-lock.jsone a node_modulespasta antes de executar npm i.


2
@AzoulayJason Acabei de perceber. Se você estiver usando a versão mais recente do angular CLI, é altamente recomendável usar em yarnvez de npm i. Existe algum tipo de bug relacionado ao npm na versão mais recente. Espero que ajude!
OArnarsson,

A partir do npm @ 5, o cache do npm se auto-recupera de problemas de corrupção e os dados extraídos do cache têm garantia de validade. Se você quiser ter certeza de que tudo está consistente, use 'npm cache verify'.
Ruan

4

Tive este problema no Linux (npm é o último 5.6.0 atual), porque criei um arquivo tgz e precisei --dereferir alguns links simbólicos (consulte man tar) ao criar um arquivo tgz (que foram copiados para a VM para teste ) Desta forma, muitos links simbólicos node_modules/.bintambém se tornaram arquivos regulares. npm diz na mensagem de erro, .eg

npm ERR! Recusando-se a deletar /path/to/node_modules/.bin/jest: está fora de / path / to / node_modules / jest e não é um link


1

Eu tive um erro semelhante (o meu não é @angular),
resolvido excluindo e reinstalando o nó com o instalador.


1

Eu tive o mesmo problema e descobri que o problema era que uma instância perdida do npmestava rodando em algum lugar no fundo ao mesmo tempo que eu estava tentando fazer a instalação (era do Webpack npm run serve, para ser preciso).

Parar a instância em execução resolveu o problema.


1

Tive um problema semelhante e o que parece ter funcionado é desinstalar o npm e reinstalá-lo, certificando-se de estar logado como o usuário correto para a reinstalação. Acho que já instalei o npm como root, mas estava atualizando um pacote como usuário regular (sudo).


1

Tive esse problema ao trabalhar em um disco virtual criptografado. Mover o projeto para um disco normal resolveu o problema.


1
  1. Desinstale o node.js do painel de controle
  2. Excluir as pastas abaixo
C:\Program Files (x86)\Nodejs
C:\Program Files\Nodejs
C:\Users\{User}\AppData\Roaming\npm (or %appdata%\npm)
C:\Users\{User}\AppData\Roaming\npm-cache (or %appdata%\npm-cache)
C:\Users\{User}\.npmrc (and possibly check for that without the . prefix too)
C:\Users\{User}\AppData\Local\Temp\npm-*
  1. Instale node.js novamente

1

Isso funcionou para mim

npm install -g --force gatsby-cli

obrigado


0

Tive o mesmo erro, mas quando estava tentando atualizar o módulo "cordova" para a versão 9. Consertei forçando a instalação com --force. O comando npm que usei:

npm i -g --force cordova@9 

0

Para usuários do Windows (específico do Windows 10), isso deve resolver o problema.

Vá para esta pasta:

C:\Users\[UserName]\AppData\Roaming\

exclua ou renomeie as pastas npme npm-cache.

Isso corrigiu meu problema no Windows.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.