npm ERR! Error: EPERM: operación no permitida, renombrar

108

Cuando ejecuto npm installme sale este error

npm ERR! Error: EPERM: operación no permitida, cambie el nombre de C: \ proyectos ****** \ node_modules \ react-async-script '->' C: \ proyectos ******* \ node_modules.react-async-script .ELIMINAR'

  • Estoy ejecutando el cmd como administrador
  • Corrí npm cache cleanantes
  • Me aseguré de que todas las demás aplicaciones no tuvieran nada relacionado con node_modulesabrir
Robin
fuente
2
ejecutar el cmd como administrador funcionó para mí
Homer
En mi caso, tuve que ejecutarlo como usuario normal (no administrador) y funcionó, parece que hay un conflicto de permisos de usuario. Pero parece que todas las demás soluciones proporcionadas aquí npm clean, npm install no son necesarias. Es un problema de permisos de usuario. Si más personas pueden confirmarlo, puedo publicar una nueva respuesta.
MG Developer

Respuestas:

123

En mi situación esto ayudó. Antes de proceder a ejecutar estos comandos, cierre todas las instancias de VS Code.

  1. limpiar caché con

    npm cache clean --force
  2. instale la última versión de npm globalmente como administrador:

    npm install -g npm@latest --force
  3. limpiar caché con

    npm cache clean --force
  4. Intente instalar su componente una vez más.

Espero que esto solucione su problema. De lo contrario, puede desactivar temporalmente su programa antivirus e intentarlo de nuevo.

romano
fuente
1
gracias @ kamil.ka este fue mi problema en Windows. Atom estaba bloqueando el package.json por lo que npm install no pudo cambiarlo.
George
28
El mismo comentario se aplica a VS Code en Windows ... ciérrelo y el problema desaparece
Martin Kearn
1
Para mí, tenía otro proceso de nodo en ejecución, json-server en mi caso. Una vez que detuve, el paquete se instaló sin errores.
EddieB
Para mí, errores como "ERR! Enoent Esto está relacionado con que npm no puede encontrar un archivo" se resolvieron al terminar todas las instancias del código de Visual Studio.
Abhishek
A veces supervisamos el uso del paquete web que empaqueta todos los archivos js, incluidos los enlaces de módulos no actualizados en, por ejemplo. app.js. Entonces, después de la actualización de npm, intente ejecutar npm run watch. Después de eso, en mi caso, los enlaces del módulo adecuados se actualizaron en un nuevo archivo app.js.
Peter van der Lely
21

No package.json, pero por alguna razón, mi se node_modules/había convertido en solo lectura. Restablecer eso solucionó esto.

Amit Bhosle
fuente
"Restablecer" para mí significaba 1.Cerrar VS, 2.Eliminar node_modulesde FileExplorer 3.Reiniciar mi PC en 4.ejecución npm install --force. Entonces FINALMENTE funcionó.
EGC
21

Lo hice funcionar cuando probé npm install con una opción de fuerza para obtener recursos remotos incluso si existe una copia local en el disco. Intenta correr

npm install --force

Actualizado Para algunos de mis colegas, esta solución no funcionaba. Pero intentamos usar hilo en lugar de npm. Funciona (más rápido también) sin problemas todo el tiempo

yarn install [package-name]
sree
fuente
Otras personas sugirieron apagar el software AV. Para mí, en la red en la que estoy, esta no era una opción. La bandera --force resolvió este problema por mí
user2590928
Solo resolví mi problema usando hilo, así que recomiendo darle una oportunidad.
Ângelo Polotto
20

Si desea evitar la --forceopción (que siempre es un mejor enfoque) , le sugiero que se asegure de haber dejado de ejecutar el proyecto, ya que esta suele ser la razón principal para bloquear los archivos en casi el 90% de los casos que he visto.

Sugiero los siguientes pasos en este orden:

1- En Angular stop ng sy en React detener npm start generalmente resuelve este problema porque generalmente este error ocurre si un servidor de desarrollo está ejecutando el proyecto, ya que bloquea algunos archivos y luego npm no puede actualizarlos, lo que arroja este error

2- Si lo anterior no funciona, intente cerrar el editor de código que tiene el espacio de trabajo abierto (tal vez estaba bloqueando algunos archivos o algo así)

Así que intente cerrar el editor de código y ejecutar:

npm install

3- Si aún así no funciona, quizás puedas probar la --forceopción

npm install --force
Ahmed Elkoussy
fuente
2
Este fue mi problema, hice un rimraff en una carpeta node_modules a través del terminal en VS Code; por alguna razón, no eliminó los node_modules de mi sistema de archivos y lo bloqueó. No fue hasta que cerré esa ventana de VS Code y la abrí de nuevo que realmente se eliminó y pude ejecutar npm install nuevamente.
Stu Furlong
13

Recibí el mismo error y, según https://github.com/Medium/phantomjs/issues/19 , podría ser causado por su software antivirus. Inhabilité el mío durante la instalación y ejecuté "npm install" en cmd como administrador y funcionó. Espero que esto ayude.

vmaldosan
fuente
1
Según github.com/npm/npm/issues/12059 esto se ha solucionado. No se sabe en qué lanzamiento se convertirá. Según los comentarios, la desactivación de AV no siempre funciona.
user1821052
En mi caso, tuve que cerrar SourceTree durante la instalación.
Dejan
13

Para mí, acabo de cerrar el editor de código (VS Code) y luego ejecuté el mismo comando. Y eso me resuelve el problema.

Sifat Haque
fuente
9

Como señaló Martin Kearn en un comentario, cerrar Visual Studio resolvió estos problemas de permisos de npm para mí. Evidentemente, VS a veces bloquea archivos en formato node_modules.

Jaycer
fuente
8

Yo estaba recibiendo lo mismo. No encontré esto en ninguna parte, pero me di cuenta de que nuestras máquinas virtuales tienden a cambiar archivos a un estado de solo lectura. Así que abrí package.jsonlas propiedades del archivo y deseleccioné Read-onlyla pestaña "General".

Pasos

  1. Vaya al package.jsonarchivo.
  2. Haga clic derecho y seleccione Propiedades .
  3. En la pestaña General , sección Atributos , anule la selección de Solo lectura .
  4. Haga clic en Aplicar para aplicar el cambio.
christo8989
fuente
Solo lectura para mí, aunque el problema original era que normalmente solo uso el código para instalar. En este caso, abrí una nueva instancia de la aplicación en Visual Studio para poder portar algunos cambios de una versión anterior y VS rápidamente comenzó a instalarse. Luego abrí el código para ejecutar npm install como lo haría normalmente y ambas aplicaciones se pusieron nerviosas. Después de varias fallas, eliminé en masa un módulo de nodo de una versión raíz de trabajo de nuestra aplicación para permitirme respaldar los cambios. Esta carpeta era de solo lectura, por lo que siguió bloqueando cosas.
Matrim
8

Este es un error típico causado por Antivirus. Existe una solución para casos como el mío, donde no puedo desactivar A / V (Política de la empresa).

Tienes que cambiar el paquete polyfills.jsinterior Npm:

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

Busque esta declaración:

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

Dentro de esta declaración, hay un tiempo de espera para volver a intentarlo en caso de error. El problema es que en algunos casos, después del tiempo de espera, el archivo sigue bloqueado por el A / V. La solución es eliminar el tiempo de espera y dejar esta declaración en bucle. El cambio con el código anterior comentó:

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
fuente
Usted señor es el verdadero MVP.
Atanas Korchev
4

En mi caso, algo se bloqueó y un reinicio rápido lo resolvió.

Kon
fuente
4

He tenido este problema varias veces solo en Windows, los pruebo en el orden habitual.

  1. npm install --force
  2. Compruebe si node_modules está configurado como de solo lectura y elimínelo si lo está
  3. Eliminar node_modules/
  4. Compruebe si hay algún editor abierto que pueda tener acceso a la carpeta raíz del proyecto.
  5. Reiniciar :(

Por lo general, intentarlo npm installdespués de uno de esos pasos lo resolverá.

Srivathsa Harish Venkataramana
fuente
2

Intentar cambiar el nombre de un archivo a otro nombre de archivo que ya existe puede provocar un EPERMerror en Windows.

Zach Bloomquist
fuente
2

Tuve el mismo problema después de actualizar a npm a 5.4.2, npm comienza a dar el mismo error para la mayoría de los comandos npm. Alguna solución sugiere ejecutarlo --no-optional, pero no siempre funcionó.

Otros sugirieron bajar de categoría, pero yo no quería bajar de categoría.

Sospeché que había un problema con la instalación, no estoy seguro de cuál era.

Así que volví a actualizar mi npm:

npm i -g npm

y funcionó bien desde entonces.

Salimd83
fuente
1

npm me estaba fallando en scandirpara:

npm install -g webpack

... que puede ser causado por npm intentando "modificar" archivos que fueron potencialmente bloqueados por otros procesos como se menciona aquí y en algunos otros subprocesos de github. Después de forzar la limpieza de la caché, verificar la caché, ejecutar como administrador, deshabilitar el AV, etc., la solución que realmente funcionó para mí fue cerrar cualquier cosa que pudiera bloquear los archivos (es decir, reiniciar mi computadora).

Espero que esto ayude a alguien que esté luchando.

kmk09k
fuente
1

Yo tuve el mismo problema. El motivo del error son los caracteres no admitidos en la ruta al archivo. Reemplazó el cirílico en inglés, ayudó.

Aleksey_Kopasov
fuente
1

Hice lo siguiente:

  1. Actualizó el npm a la última versión: npm install -g [email protected]
  2. eliminó la carpeta npm-cache de: c:/users/[username]/AppData/Roaming/npm-cache
  3. Hizo caché limpio: npm cache clean --force
  4. Corrió el npm install.
RV.
fuente
1

Abra el símbolo del sistema como administrador y navegue hasta la ubicación del proyecto y luego ejecute npm install. funcionó para mí.

Ashutosh dwivedi
fuente
1

En mi caso se ejecuta npm: v6.9.0&& node: v10.16.1en Windows, tuve que correr mi CLI (GIT bash) como administrador . Luego, los paquetes se instalaron sin advertencias / errores

ebram khalil
fuente
0

Mi respuesta es hacer npm cache clean --forceprimero. Luego, ejecute npm install -g [email protected]para instalar la versión npm 5.3.0. para mí, esta versión npm funciona sin problemas.

UmaShankar
fuente
0

Simplemente elimine la carpeta del paquete de la ruta de los paquetes globales de npm. luego reinstale el paquete. Tenga en cuenta que los paquetes se instalan globalmente en: C: \ Users \ your-name \ AppData \ Roaming \ npm \ node_modules

Ramin Ar
fuente
0

Estaba teniendo el mismo problema en Windows 10. Solo sigue estos pasos:

  • Abra cmd como administrador.

  • instalar el paquete npm actualizado.

  • npm i -g npm

  • npm init - sí

Anand Tiwari
fuente
0

Ejecutar comandos como Super Admin funcionó para mí. Vuelva a intentarlo después de cerrar el editor en el que está trabajando.

pallav bohara
fuente
0

Yo también luché con esto. Finalmente, una solución que funciona bien si usa nvm:

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

y eso es.

milenio
fuente
0

Esto puede deberse a su software antivirus. Si no puede deshabilitar AV, puede intentar modificar la ubicación de instalación global de NPM a medida que el nodo se instala en el directorio APPDATA que es monitoreado activamente por AV Engines. Intente ejecutar los siguientes comandos:

npm config set prefijo "SU UBICACIÓN PERSONALIZADA" npm config set cache "SU UBICACIÓN PERSONALIZADA"

Elimine el directorio node_modules e instale su paquete nuevamente.

usuario3544913
fuente
0

En mi caso, la configuración typescript.disableAutomaticTypeAcquisitionen Visual Studio Code trueparece ayudar.

Markus Hettich
fuente
0

Cerrar PHPStorm solucionó el problema para mí.

Rualark
fuente
0

Cerré VS, eliminé la carpeta node_modules.

Luego corrió:

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 

Luego tuve que cambiar la propiedad para que no se lea solo en la carpeta node_modules una vez que terminó de ejecutarse.

Luego corrió:

npm i @microsoft/signalr @types/node

Luego abrió una copia de seguridad del proyecto en VS y el package.json se veía bien con las dependencias.

En la misma línea que otros hablan de solo lectura en la carpeta node_modules y cierran VS para ejecutar npm install.

Sam
fuente
0

Si tiene el problema en PHP Storm:

  1. Cerrar pestaña terminal
  2. Abrir una nueva pestaña de terminal
2Fwebd
fuente