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



windows (19)

Quando executo "npm install", recebo este erro

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

  • Estou executando o cmd como administrador
  • Eu executei o cache do npm limpo antes
  • Verifiquei que todos os outros aplicativos não têm nada relacionado ao node_modeules aberto

https://ffff65535.com


A execução de comandos como Superadmin funcionou para mim. Tente novamente após fechar o Editor em que você está trabalhando.


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


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


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

Você precisa alterar o polyfills.js dentro do pacote Npm :

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

Procure esta declaração:

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

Dentro desta declaraçã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 é esgotar o tempo limite e deixar essa declaração em loop. A alteração 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)
}

Eu enfrento esse problema várias vezes. Acontece que isso não tem nada a ver com permissões, cache etc. A mensagem de erro é enganosa. Para o nó v 6.x, você verá uma pilha de erros mais detalhada, mas não depois do 7.x Para mim e minhas faculdades, o problema é a função de tempo limite. Basicamente, a instalação do pacote ainda não terminou (ou seja, mantendo o diretório) quando o npm tenta excluí-lo. no nó 6.x, você pode ver que no finalize.js agora ele se foi! Basta usar fios.


Eu estava recebendo a mesma coisa. Não encontrei isso em nenhum lugar, mas percebi que nossas VMs tendem a alterar os arquivos para um estado somente leitura. Então, abri as propriedades do arquivo package.json e cancelei a seleção Read-only na guia "Geral".

Passos

  1. Vá para o arquivo package.json .
  2. Clique com o botão direito e selecione Propriedades .
  3. Na guia Geral , seção Atributos , desmarque Somente leitura .
  4. Clique em Aplicar para aplicar a alteração.

Eu estava tendo o mesmo problema no Windows 10. Apenas segue estas etapas:

  • Abra o cmd como administrador.

  • instale o pacote npm atualizado.

  • npm i -g npm

  • npm init --yes


Eu fiz o seguinte:

  1. Atualizou 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 foi limpo: o npm cache clean --force
  4. npm install do npm install .

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

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

e é isso.


Eu tive o mesmo problema depois de atualizar para o npm para 5.4.2, o npm começou a dar o mesmo erro para a maioria dos comandos do npm. Algumas soluções sugerem executá-lo com --no-opcional:

nem sempre funcionou.

outro sugerido para fazer o downgrade, eu não queria fazer o downgrade.

Suspeitei que houvesse um problema com a instalação, sem saber o que era.

então eu atualizei meu npm:

npm i -g npm

e funcionou bem desde então.


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 mecanismos AV. Tente executar os seguintes comandos:

prefixo do conjunto de configurações npm "SUA LOCALIZAÇÃO PERSONALIZADA" cache do conjunto de configurações npm "SUA LOCALIZAÇÃO PERSONALIZADA"

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


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


Na minha situação, ajudou:

  1. cache limpo com

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

    npm install -g [email protected] --force
  3. cache limpo com

    npm cache clean --force
  4. Tente instalar seu componente mais uma vez.

Espero que isso resolva seu problema. Se isso não ajudar, tente alternar o programa antivírus por um tempo e repita.


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


No meu caso, executando npm: v6.9.0 && node: v10.16.1 no Windows , tive que executar minha CLI (git bash) como administrador . Em seguida, os pacotes foram instalados sem nenhum aviso / erro


O npm estava falhando para mim na scandir por:

npm install -g webpack

... o que pode ser causado pela tentativa do npm de "modificar" arquivos potencialmente bloqueados por outros processos, como mencionado here e em outros threads do github. Depois de forçar a limpeza do cache, a verificação do cache, a execução como administrador, a desativação do AV etc. a solução que realmente funcionou para mim foi fechar qualquer coisa que pudesse estar bloqueando os arquivos (por exemplo, reiniciando o computador).

Espero que isso ajude alguém em dificuldades.


Para mim, fechei o editor de código (código VS) e execute o mesmo comando. E isso resolve o problema para mim.



Tentar renomear um arquivo para outro nome de arquivo que já existe pode causar um erro EPERM no Windows.





npm