npm ERR! Errore: EPERM: operazione non consentita, rinomina


109

Quando eseguo npm installottengo questo errore

npm ERR! Errore: EPERM: operazione non consentita, rinomina C: \ projects ****** \ node_modules \ react-async-script '->' C: \ projects ******* \ node_modules.react-async-script .ELIMINA'

  • Sto eseguendo cmd come amministratore
  • Ho corso npm cache cleanprima
  • Mi sono assicurato che tutte le altre applicazioni non avessero nulla di correlato node_modulesall'apertura

2
l'esecuzione del cmd come amministratore ha funzionato per me
Homer

Nel mio caso ho dovuto eseguirlo come utente normale (non amministratore) e ha funzionato, sembra essere un conflitto di autorizzazioni utente. Ma sembra che tutte le altre soluzioni fornite qui npm clean, npm install non siano richieste. È un problema di autorizzazione dell'utente. Se più persone possono confermare, posso pubblicare una nuova risposta.
MG Developer

Risposte:


125

Nella mia situazione questo ha aiutato. Prima di procedere all'esecuzione di questi comandi, chiudere tutte le istanze di VS Code.

  1. pulire la cache con

    npm cache clean --force
  2. installa l'ultima versione di npm a livello globale come amministratore:

    npm install -g npm@latest --force
  3. pulire la cache con

    npm cache clean --force
  4. Prova a installare di nuovo il tuo componente.

Spero che questo risolva il tuo problema. In caso contrario, puoi disabilitare temporaneamente il tuo programma antivirus e riprovare.


1
grazie @ kamil.ka questo era il mio problema su Windows. Atom stava bloccando il package.json quindi l'installazione di npm non poteva cambiarlo.
George

29
Lo stesso commento vale per VS Code su Windows… chiudilo e il problema scompare
Martin Kearn

1
Per me, avevo un altro processo del nodo in esecuzione, json-server nel mio caso. Una volta che ho smesso di installare il pacchetto senza errori.
EddieB

Per me, errori come "ERR! Enoent Questo è correlato al fatto che npm non è in grado di trovare un file" sono stati risolti terminando tutte le istanze per il codice di Visual Studio.
Abhishek

A volte controlliamo l'uso di webpack che ha compresso tutti i file js inclusi i collegamenti ai moduli non aggiornati in es. app.js. Quindi, dopo l'aggiornamento di npm, prova a eseguire npm run watch. Successivamente, nel mio caso, i collegamenti ai moduli appropriati sono stati aggiornati in un nuovo file app.js.
Peter van der Lely,

21

No package.json, ma per qualsiasi motivo, il mio node_modules/era diventato di sola lettura. Il ripristino ha risolto il problema.


"Reimpostare" per me significava 1.chiudere VS, 2.eliminare node_modulesda FileExplorer e 3.riavviare il mio PC in 4.esecuzione npm install --force. Poi FINALMENTE ha funzionato.
EGC

21

Ho funzionato quando ho provato l'installazione di npm con un'opzione force per recuperare risorse remote anche se esiste una copia locale sul disco. Prova a correre

npm install --force

Aggiornato Per alcuni dei miei colleghi questa soluzione non funzionava. Ma abbiamo provato a usare il filato invece di npm. Funziona (anche più velocemente) senza problemi tutto il tempo

yarn install [package-name]

Altre persone hanno suggerito di disattivare il software AV. Per me, sulla rete in cui mi trovo, questa non era un'opzione. Il flag --force ha risolto questo problema per me
user2590928

Ho risolto il mio problema solo usando il filo, quindi consiglio di dargli una possibilità.
Ângelo Polotto

20

Se vuoi evitare l' --forceopzione (che è sempre un approccio migliore) , ti suggerisco di assicurarti di aver interrotto l'esecuzione del progetto, poiché questo di solito è il motivo principale per bloccare i file in quasi il 90% dei casi che ho visto

Suggerisco i seguenti passaggi in questo ordine:

1- In Angular l'arresto ng se in React l'arresto di npm start solito risolve questo problema perché di solito questo errore si verifica se un server di sviluppo sta eseguendo il progetto poiché blocca alcuni file e quindi npm non può aggiornarli generando questo errore

2- Se quanto sopra non funziona, prova a chiudere l'editor di codice in cui è aperto lo spazio di lavoro (forse stava bloccando alcuni file o qualcosa del genere)

Quindi prova a chiudere l'editor del codice ed eseguire:

npm install

3- Se ancora non funziona, forse puoi provare l' --forceopzione

npm install --force

2
Questo era il mio problema, ho rimraffato una cartella node_modules attraverso il terminale su VS Code - per qualche motivo non ha rimosso del tutto node_modules dal mio file system e l'ha bloccato. È stato solo quando ho chiuso quella finestra di VS Code e l'ho riaperto che è stato effettivamente rimosso e ho potuto eseguire nuovamente l'installazione di npm.
Stu Furlong

13

Ho ricevuto lo stesso errore e secondo https://github.com/Medium/phantomjs/issues/19 potrebbe essere causato dal tuo software antivirus. Ho disabilitato il mio per la durata dell'installazione ed eseguito "npm install" su cmd come amministratore e ha funzionato. Spero che questo ti aiuti.


1
Secondo github.com/npm/npm/issues/12059 questo problema è stato risolto. Nessuna parola su quale versione lo farà. Secondo i commenti, disabilitare AV non sempre funziona.
user1821052

Nel mio caso, ho dovuto chiudere SourceTree durante l'installazione.
Dejan

13

Per me ho appena chiuso l'editor del codice (VS Code) e quindi eseguito lo stesso comando. E questo risolve il problema per me.


9

Come ha sottolineato Martin Kearn in un commento, la chiusura di Visual Studio ha risolto questi problemi di autorizzazione npm per me. Evidentemente VS a volte blocca i file in formato node_modules.


8

Stavo ottenendo la stessa cosa. Non l'ho trovato da nessuna parte, ma ho capito che le nostre VM tendono a modificare i file in uno stato di sola lettura. Così ho aperto package.jsonle proprietà del file di e deselezionato Read-onlynella scheda "Generale".

Passi

  1. Vai al package.jsonfile.
  2. Fare clic con il tasto destro e selezionare Proprietà .
  3. Nella scheda Generale , sezione Attributi , deseleziona Sola lettura .
  4. Fare clic su Applica per applicare la modifica.

Solo lettura per me anche se il problema originale era che di solito utilizzo solo il codice per l'installazione. In questo caso ho aperto una nuova istanza dell'app in Visual Studio in modo da poter portare alcune modifiche da una vecchia versione e VS ha prontamente iniziato a installarsi. Ho quindi aperto il codice per eseguire l'installazione di npm come farei normalmente ed entrambe le app sono entrate in crisi. Dopo diversi fallimenti, ho quindi rilasciato in massa un modulo nodo da una versione root funzionante della nostra app per consentirmi di eseguire il back port delle modifiche. Questa cartella era di sola lettura, quindi continuò a bloccare le cose.
Matrim

8

Questo è un tipico errore causato da Antivirus. C'è una soluzione alternativa per casi come il mio, in cui non posso disabilitare A / V (politica aziendale).

Devi cambiare il pacchetto polyfills.jsinterno Npm:

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

Cerca questa dichiarazione:

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

All'interno di questa istruzione, c'è un timeout che effettua un nuovo tentativo in caso di errore. Il problema è che in alcuni casi, dopo il timeout, il file è ancora bloccato da A / V. La soluzione è strappare il timeout e lasciare che questa istruzione continui. La modifica con il codice precedente ha commentato:

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)
}

Sei il vero MVP.
Atanas Korchev

4

Nel mio caso, qualcosa si è bloccato e un rapido riavvio lo ha risolto.


4

Ho avuto questo problema più volte solo in Windows, li provo nell'ordine di solito.

  1. npm install --force
  2. Controlla se node_modules è impostato su sola lettura e rimuovi se lo è
  3. Elimina node_modules/
  4. Controlla se è aperto un editor che potrebbe avere accesso alla cartella principale del progetto
  5. Riavvia :(

Di solito provare npm installdopo uno di questi passaggi lo risolverà.


2

Il tentativo di rinominare un file con un altro nome di file già esistente può causare un EPERMerrore su Windows.



2

Ho avuto lo stesso problema dopo l'aggiornamento a npm a 5.4.2, npm inizia a dare lo stesso errore per la maggior parte dei comandi npm. Alcune soluzioni suggeriscono di eseguirlo --no-optional, ma non sempre ha funzionato.

Altri hanno suggerito di eseguire il downgrade, ma non volevo eseguire il downgrade.

Sospettavo che ci fosse un problema con l'installazione, non sono sicuro di cosa fosse.

Quindi ho aggiornato di nuovo il mio npm:

npm i -g npm

e da allora ha funzionato bene.


1

npm non funzionava per me a scandirper:

npm install -g webpack

... che potrebbe essere causato dal tentativo di npm di "modificare" file potenzialmente bloccati da altri processi come menzionato qui e in pochi altri thread gitHub. Dopo aver forzato la pulizia della cache, verificato la cache, eseguito come amministratore, disabilitato l'AV, ecc., La soluzione che ha funzionato effettivamente per me è stata la chiusura di qualsiasi cosa che potesse bloccare i file (cioè riavviare il mio computer).

Spero che questo aiuti qualcuno in difficoltà.


1

Ho avuto lo stesso problema. Il motivo dell'errore sono i caratteri non supportati nel percorso del file. Ha sostituito il cirillico in inglese - ha aiutato.



1

Ho fatto quanto segue:

  1. Aggiornato il npm alla versione più recente: npm install -g npm@6.5.0-next.0
  2. ha eliminato la cartella npm-cache da: c:/users/[username]/AppData/Roaming/npm-cache
  3. La cache ha pulito: npm cache clean --force
  4. Ho eseguito il file npm install.

1

Apri il prompt dei comandi come amministratore e vai alla posizione del progetto, quindi esegui npm install. ha funzionato per me.


1

Nel mio caso in esecuzione npm: v6.9.0&& node: v10.16.1su Windows, ho dovuto eseguire la mia CLI (git bash) come amministratore . Quindi i pacchetti sono stati installati senza avvisi / errori


0

La mia risposta è fare npm cache clean --forceprima. Quindi esegui npm install -g npm@5.3.0per installare la versione 5.3.0 di npm. per me, questa versione di npm funziona senza problemi.


0

Basta eliminare la cartella del pacchetto dal percorso dei pacchetti globali npm. quindi reinstallare il pacchetto. Tieni presente che i pacchetti sono installati a livello globale in: C: \ Users \ your-name \ AppData \ Roaming \ npm \ node_modules


0

Avevo lo stesso problema in Windows 10. Segui questi passaggi:

  • Apri cmd come amministratore.

  • installa il pacchetto npm aggiornato.

  • npm i -g npm

  • npm init - sì


0

L'esecuzione di comandi come Super Admin ha funzionato per me. Riprova dopo aver chiuso l'editor in cui stai lavorando.


0

Ho lottato anche con questo. Finalmente una soluzione che funziona bene se usi nvm:

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

e questo è tutto.


0

Ciò potrebbe essere dovuto al tuo software antivirus. Se non è possibile disabilitare AV, è possibile provare a modificare la posizione di installazione globale di NPM mentre il nodo si installa nella directory APPDATA che è attivamente monitorata dai motori AV. Prova a eseguire i seguenti comandi:

npm config set prefix "YOUR CUSTOM LOCATION" npm config set cache "YOUR CUSTOM LOCATION"

Elimina la directory node_modules e installa di nuovo il pacchetto.


0

Nel mio caso l'impostazione typescript.disableAutomaticTypeAcquisitionin Visual Studio Code truesembrava aiutare.


0

La chiusura di PHPStorm ha risolto il problema per me.


0

Ho chiuso VS, eliminato la cartella node_modules.

Quindi ha eseguito:

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 

Quindi ho dovuto modificare la proprietà per non leggere solo sulla cartella node_modules una volta terminata l'esecuzione.

Quindi ha eseguito:

npm i @microsoft/signalr @types/node

Quindi ha aperto il backup del progetto in VS e il package.json sembrava corretto con le dipendenze.

Sulla stessa linea di altri che parlano di sola lettura nella cartella node_modules e chiusura di VS per eseguire l'installazione di npm.


0

Se stai riscontrando il problema su PHP Storm:

  1. Chiudi la scheda del terminale
  2. Apri una nuova scheda terminale
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.