npm ERR! Erro: EPERM: operação não permitida, renomear

107

Quando eu executo npm install, recebo este erro

npm ERR! Erro: EPERM: operação não permitida, renomear C: \ projects ****** \ node_modules \ react-async-script '->' C: \ projects ******* \ node_modules.react-async-script .EXCLUIR'

  • Estou executando o cmd como administrador
  • Eu corri npm cache cleanantes
  • Tenho a certeza todas as outras aplicações não têm qualquer coisa relacionada ao node_modulesaberto
Robin
fonte
2
executar o cmd como administrador funcionou para mim
Homer
No meu caso, tive que executá-lo como usuário normal (não administrador) e funcionou, parece haver conflito de permissões de usuário. Mas parece que todas as outras soluções fornecidas aqui npm clean, npm install não são necessárias. É um problema de permissão do usuário. Se mais pessoas puderem confirmar, posso postar uma nova resposta.
MG Developer

Respostas:

122

Na minha situação isso ajudou. Antes de prosseguir com a execução desses comandos, feche todas as instâncias do VS Code.

  1. limpar cache com

    npm cache clean --force
  2. instale a versão mais recente do npm globalmente como administrador:

    npm install -g npm@latest --force
  3. limpar cache com

    npm cache clean --force
  4. Tente instalar o seu componente novamente.

Espero que isso resolva seu problema. Caso contrário, você pode desativar temporariamente o programa antivírus e tentar novamente.

romano
fonte
1
obrigado @ kamil.ka este era o meu problema no Windows. O Atom estava bloqueando o package.json, então o npm install não pôde alterá-lo.
George
28
O mesmo comentário se aplica ao VS Code no Windows ... feche-o e o problema desaparecerá
Martin Kearn
1
Para mim, eu tinha outro processo de nó em execução, json-server no meu caso. Assim que parei o pacote foi instalado sem erros.
EddieB
Para mim, erros como "ERR! Enoent Isso está relacionado ao npm não ser capaz de encontrar um arquivo" foram resolvidos encerrando todas as instâncias do código do Visual Studio.
Abhishek de
Às vezes, supervisionamos o uso de webpack que empacotou todos os arquivos js incluindo links de módulos não atualizados, por exemplo. app.js. Portanto, após a atualização do npm, tente executar npm run watch. Depois disso, no meu caso, os links dos módulos apropriados foram atualizados em um novo arquivo app.js.
Peter van der Lely
21

Não package.json, mas por alguma razão, meu node_modules/tornou-se somente leitura. Redefinir isso corrigiu isso.

Amit Bhosle
fonte
"Reiniciar" para mim significava 1.fechar o VS, 2.excluir node_modulesdo FileExplorer e 3.reiniciar meu PC em 4.execução npm install --force. Então FINALMENTE funcionou.
EGC
21

Eu fiz funcionar quando tentei instalar o npm com uma opção de força para buscar recursos remotos, mesmo se houver uma cópia local no disco. Tente correr

npm install --force

Atualizado Para alguns de meus colegas, esta solução não estava funcionando. Mas tentamos usar fios em vez de npm. Funciona (mais rápido também) sem problemas o tempo todo

yarn install [package-name]
sree
fonte
Outras pessoas sugeriram desligar o software AV. Para mim, na rede em que estou, isso não era uma opção. A sinalização --force resolveu este problema para mim
user2590928
Só resolvi meu problema com fio, então recomendo dar uma chance a ele.
Ângelo Polotto
20

Se você quiser evitar a --forceopção (que é sempre uma abordagem melhor) , sugiro certificar-se de que você parou de executar o projeto, pois este é geralmente o principal motivo para bloquear os arquivos em quase 90% dos casos que eu vi

Eu sugiro as seguintes etapas nesta ordem:

1- Na parada angular ng se na parada de reação npm start geralmente resolve esse problema porque geralmente esse erro acontece se um servidor de desenvolvimento está executando o projeto, pois ele bloqueia alguns arquivos e então o npm não pode atualizá-los, gerando este erro

2- Se o acima não funcionar, tente fechar o editor de código que tem a área de trabalho aberta (talvez esteja bloqueando alguns arquivos ou algo assim)

Portanto, tente fechar o editor de código e executar:

npm install

3- Se ainda não funcionar, então talvez você possa tentar a --forceopção

npm install --force
Ahmed Elkoussy
fonte
2
Este era o meu problema, eu remexi uma pasta node_modules por meio do terminal no VS Code - por algum motivo, ele não removeu o node_modules do meu sistema de arquivos e o bloqueou. Só depois de fechar a janela do VS Code e abri-lo novamente é que ele realmente foi removido e pude executar o npm install novamente.
Stu Furlong
13

Eu estava recebendo o mesmo erro e, de acordo com https://github.com/Medium/phantomjs/issues/19, ele pode ser causado pelo seu software antivírus. Desativei o meu durante a instalação e executei "npm install" no cmd como administrador e funcionou. Espero que isto ajude.

vmaldosan
fonte
1
Por github.com/npm/npm/issues/12059 isso foi corrigido. Nenhuma palavra sobre em que versão será feita. De acordo com os comentários, a desativação do AV nem sempre funciona.
user1821052
No meu caso, tive que fechar o SourceTree durante a instalação.
Dejan
13

Para mim, acabei de fechar o editor de código (VS Code) e executar o mesmo comando. E isso resolve o problema para mim.

Sifat Haque
fonte
9

Como Martin Kearn apontou em um comentário, fechar o Visual Studio resolveu esses problemas de permissão de npm para mim. Evidentemente, o VS às vezes bloqueia arquivos node_modules.

Jaycer
fonte
8

Eu estava recebendo a mesma coisa. Eu não encontrei isso em nenhum lugar, mas me ocorreu que nossas VMs tendem a alterar os arquivos para um estado somente leitura. Portanto, abri package.jsonas propriedades do arquivo de e desmarquei Read-onlya guia "Geral".

Passos

  1. Vá para o package.jsonarquivo.
  2. Clique com o botão direito e selecione Propriedades .
  3. No guia Geral , seção Atributos , desmarque Somente leitura .
  4. Clique em Aplicar para aplicar a mudança.
christo8989
fonte
Para mim, somente leitura, embora o problema original fosse que normalmente só uso código para instalar. Neste caso, abri uma nova instância do aplicativo no Visual Studio para que pudesse portar algumas alterações de uma versão antiga e o VS imediatamente começou a se instalar. Em seguida, abri o código para executar o npm install como faria normalmente e os dois aplicativos ficaram confusos. Depois de várias falhas, derrubei em massa os módulos de um nó de uma versão raiz de trabalho do nosso aplicativo para permitir que eu fizesse as alterações. Esta pasta era somente leitura, então continuava bloqueando as coisas.
Matrim
8

Este é um erro típico causado pelo Antivírus. Há uma solução alternativa para casos como o meu, em que não consigo desabilitar A / V (Política da Empresa).

Você tem que mudar o pacote polyfills.jsinterno Npm:

[NODE_HOME]/node_modules/npm/node_modules/graceful_fs/polyfills.js

Procure esta declaração:

if (process.platform === "win32") {

Dentro desta instrução, há um tempo limite fazendo uma nova tentativa em caso de erro. O problema é que em alguns casos, após o tempo limite, o arquivo ainda está bloqueado pelo A / V. A solução é eliminar o tempo limite e deixar essa instrução em loop. A mudança com o código anterior comentou:

if (platform === "win32") {

fs.rename = (function (fs$rename) { return function (from, to, cb) {
  var start = Date.now()
  var backoff = 0;
  fs$rename(from, to, function CB (er) {
    if (er
        && (er.code === "EACCES" || er.code === "EPERM")
        /*&& Date.now() - start < 60000*/) {
            console.log("Retrying rename file: " + from + " <> " + to)
            fs$rename(from, to, CB);
      /*setTimeout(function() {
        fs.stat(to, function (stater, st) {
          if (stater && stater.code === "ENOENT")
            fs$rename(from, to, CB);
          else
            cb(er)
        })
      }, backoff)*/
      if (backoff < 100)
        backoff += 10;
      return;
    }
    if (cb) cb(er)
  })
}})(fs.rename)
}
Bruno Guaitanele
fonte
Você, senhor, é o verdadeiro MVP.
Atanas Korchev,
4

No meu caso, algo travou e uma reinicialização rápida resolveu.

Kon
fonte
4

Tive esse problema várias vezes apenas no Windows. Normalmente, tento-os na ordem.

  1. npm install --force
  2. Verifique se node_modules está definido como somente leitura e remova se estiver
  3. Excluir node_modules/
  4. Verifique se está aberto algum editor que possa ter acesso à pasta raiz do projeto
  5. Reinicializar :(

Normalmente, tentar npm installdepois de uma dessas etapas resolverá o problema.

Srivathsa Harish Venkataramana
fonte
2

Tentar renomear um arquivo com outro nome já existente pode causar um EPERMerro no Windows.

Zach Bloomquist
fonte
2

Tive o mesmo problema depois de atualizar para npm para 5.4.2, npm começou a dar o mesmo erro para a maioria dos comandos npm. Alguma solução sugere executá-lo com--no-optional , mas nem sempre funciona.

Outros sugeriram fazer downgrade, mas eu não queria fazer downgrade.

Suspeitei que havia um problema com a instalação, não tenho certeza do que era.

Então eu atualizei meu npm:

npm i -g npm

e funcionou bem desde então.

Salimd83
fonte
1

npm estava falhando para mim às scandirpor:

npm install -g webpack

... que pode ser causado pela tentativa do npm de "modificar" arquivos que foram potencialmente bloqueados por outros processos, conforme mencionado aqui e em alguns outros threads do github. Depois de forçar a limpeza do cache, verificar o cache, executar como administrador, desabilitar o AV, etc. a solução que realmente funcionou para mim foi fechar qualquer coisa que pudesse bloquear os arquivos (ou seja, reiniciar meu computador).

Espero que isso ajude alguém com dificuldades.

kmk09k
fonte
1

Eu tive o mesmo problema. O motivo do erro são os caracteres não suportados no caminho para o arquivo. Substituiu o cirílico em inglês - ajudou.

Aleksey_Kopasov
fonte
1

Eu fiz o seguinte:

  1. Atualizado o npm para a versão mais recente: npm install -g [email protected]
  2. excluiu a pasta npm-cache de: c:/users/[username]/AppData/Roaming/npm-cache
  3. O cache limpou: npm cache clean --force
  4. Executou o npm install.
RV.
fonte
1

Abra o prompt de comando como administrador, navegue até o local do projeto e execute npm install. funcionou para mim.

Ashutosh dwivedi
fonte
1

No meu caso, rodando npm: v6.9.0&& node: v10.16.1on Windows, tive que rodar minha CLI (git bash) como administrador . Em seguida, os pacotes foram instalados sem quaisquer avisos / erros

ebram khalil
fonte
0

Minha resposta é fazer npm cache clean --forceprimeiro. Em seguida, execute npm install -g [email protected]para instalar a versão npm 5.3.0. para mim, esta versão npm funciona sem problemas.

UmaShankar
fonte
0

Apenas exclua a pasta do pacote do caminho dos pacotes globais npm. em seguida, reinstale o pacote. Observe que os pacotes são instalados globalmente em: C: \ Usuários \ seu-nome \ AppData \ Roaming \ npm \ node_modules

Ramin Ar
fonte
0

Eu estava tendo o mesmo problema no windows 10. Basta seguir estas etapas:

  • Abra o cmd como administrador.

  • instale o pacote npm atualizado.

  • npm i -g npm

  • npm init - sim

Anand Tiwari
fonte
0

Executar comandos como Super Admin funcionou para mim. Tente novamente após fechar o Editor em que você está trabalhando.

pallav bohara
fonte
0

Eu lutei com isso também. Finalmente, uma solução que funciona bem se você usar nvm:

cd ~/.nvm/versions/node/{your node version}/lib/ npm install npm

e é isso.

milênio
fonte
0

Isso pode ser devido ao seu software antivírus. Se você não pode desativar o AV, pode tentar modificar o local de instalação global do NPM à medida que o nó é instalado no diretório APPDATA, que é monitorado ativamente pelos motores AV. Tente executar os seguintes comandos-

npm config set prefixo "SUA LOCALIZAÇÃO PERSONALIZADA" npm config set cache "SUA LOCALIZAÇÃO PERSONALIZADA"

Exclua o diretório node_modules e instale seu pacote novamente.

user3544913
fonte
0

No meu caso, a configuração typescript.disableAutomaticTypeAcquisitionno Visual Studio Code truepareceu ajudar.

Markus Hettich
fonte
0

Fechar o PHPStorm resolveu o problema para mim.

Rualark
fonte
0

Fechei o VS, apaguei a pasta node_modules.

Então correu:

npm i -D -E clean-webpack-plugin@3.0.0 css- 
loader@3.4.2 html-webpack-plugin@3.2.0 mini-css- 
extract-plugin@0.9.0 ts-loader@6.2.1 typescript@3.7.5 
webpack@4.41.5 webpack-cli@3.3.10 

Em seguida, teve que alterar a propriedade para não ler apenas na pasta node_modules depois de terminar a execução.

Então correu:

npm i @microsoft/signalr @types/node

Em seguida, abriu o backup do projeto no VS e o package.json parecia certo com as dependências.

Na mesma linha que outros falando sobre ler somente na pasta node_modules e fechar o VS para executar o npm install novamente.

Sam
fonte
0

Se você está tendo problemas no PHP Storm:

  1. Fechar guia do terminal
  2. Abra uma nova guia de terminal
2Fwebd
fonte