Error de instalación de npm: rollbackFailedOptional

81

Cuando pruebo npm installpaquetes nuevos, me muestra este error:

rollbackFailedOptional: verbo npm-session 585aaecfe5f9a82

node --version
8.4.0

npm --version
5.3.0
Bipul Prasai
fuente
1
También recibo el mismo error. encontraste alguna solución para esto?
Anil
Lo más probable es que esto se deba al firewall de su empresa. Utilice una conexión a Internet que no sea de la empresa o intente configurar un proxy proporcionado por el administrador de su empresa para acceder al servidor de repositorio de NPM.
Prometheus

Respuestas:

83
    # first this
    > npm config rm proxy
    > npm config rm https-proxy

    # then this
    > npm config set registry https://registry.npmjs.org/

resolvió mi problema.

Nuevamente: asegúrese de verificar si tiene Internet correctamente conectado.

anvarik
fuente
3
Explique esta información, no me funcionó demasiado.
Jorgesys
2
para mí, necesito usar https://registry.npmjs.org/(tenga en cuenta el https)
Walty Yeung
me salvas el día
Brilian Aringga
esto no resolvió mi problema desafortunadamente. Solo estoy en una red doméstica simple, sin proxy, he tenido este error de encendido y apagado durante mucho tiempo, a veces cuando uso VS Code puedo abrir un indicador de cmd (no VS Code) y funciona, pero no en el IDE. Acabo de desinstalar NodeJS, eliminé todas las carpetas npm en AppData, lo reinstalé y todavía tengo este error.
Luke T O'Brien
55

Prueba esto

npm config rm proxy
npm config rm https-proxy
cwtuan
fuente
3
También trabajé para mí, pero ¿sabes qué hizo este comando y por qué funcionó? Me pregunto si necesito instalar algo en su lugar. ¡Gracias!
aztec242
1
La razón por la que esto ayuda es que, de alguna manera, la configuración de su registro se estableció en algo diferente a la predeterminada, y estos comandos eliminan esas configuraciones y les permiten volver a sus valores predeterminados. En mi caso, mi trabajo utiliza un registro personalizado que recientemente se colocó detrás de un firewall. Trabajando en un proyecto personal en casa, así que sobrescribo la configuración de npm para este proyecto específicamente en este directorio. Consulte la respuesta de @ lambda a continuación para obtener más detalles.
Andy Groff
Funcionó bien. Después de intentar el rollBackFailed .. apareció de nuevo pero se ha ido después de unos segundos. He instalado nativescript fácilmente con él. Gracias
Md Ashraful Islam
2
No funcionó para mí hasta que también corrínpm config set registry http://registry.npmjs.org/
davis
Lo mismo para mí que @davis
kayleeFrye_onDeck
20

En mi caso, tuve que editar .npmrcdirectamente y agregar la configuración del proxy manualmente.

proxy=http://yourorganizationproxy.com:8080
https-proxy=http://yourorganizationproxy.com:8080

Espero que esto ayude a alguien.

miqrc
fuente
¡Muchas gracias! En mi caso (Kubuntu), la configuración se agregó de alguna manera al archivo de usuario .npmrc en~/.npmrc
a1300
1
Me entristece que cuando npm no puede llegar al registro, el comportamiento es quedarse allí con un mensaje de estado arcano y sin señales de que está tratando de comunicarse con un host remoto. Las herramientas de línea de comandos bien educadas deberían informar a los usuarios cuando están haciendo cosas en Internet
Matt Montag
¿Dónde puedo encontrar la configuración del proxy? @miqrc
Akhila
Necesitaba cambiar la clave a 'https_proxy' para que funcione, usando npm v6.13.4
JamesP
18

La causa de esto podría ser su registro NPM actual . Intente buscar un .npmrcarchivo . Estos pueden estar en varias ubicaciones:

  • archivo de configuración por proyecto ( /path/to/my/project/.npmrc)
  • archivo de configuración por usuario ( ~/.npmrc)
  • archivo de configuración global ( $PREFIX/etc/npmrc)
  • archivo de configuración integrado de npm ( /path/to/npm/npmrc)

Dentro de estos puede haber algo como

registry=https://mycustomregistry.example.org

que tendrá prioridad sobre el predeterminado ( http://registry.npmjs.org/). Puede eliminar esta línea en el archivo o usar el registro predeterminado así:

npm <command> --registry http://registry.npmjs.org/
lambda
fuente
2
la ejecución npm config set registry http://registry.npmjs.org/funcionó para mí después de configurar la configuración del proxy
rainversion_3
15

Lo más probable es que npm no pueda acceder al registro. Verifique la configuración del proxy npm

Tuve exactamente el mismo problema en Windows Server 2008 R2. Al principio sospeché de la configuración de seguridad mejorada de Internet Explorer, pero después de apagarla sin éxito, el problema resultó ser que npm no estaba configurado para usar mi conexión de proxy corporativa a Internet.

Resulta que npm no usa la configuración de proxy en efecto a través de Opciones de Internet> pestaña Conexiones> Configuración de LAN donde el servidor está configurado para 'Detectar configuraciones automáticamente'. Estar configurado para detectar automáticamente la configuración no garantiza que se esté utilizando un proxy, solo significa que Windows configurará automáticamente la configuración del proxy para Internet Explorer si encuentra un archivo 'wpad.dat' especial en http: // wpad. [Tudominio .com] /wpad.dat .

Puede probar si un archivo wpad.dat está en uso en su organización escribiendo lo siguiente en un navegador web.

http://wpad.[yourcompany.domain]/wpad.dat

Si no hay ningún archivo disponible, es probable que no esté utilizando un proxy de toda la organización. Si uno vuelve al navegador, entonces ...

Hacia la parte inferior de este archivo, debería ver una línea que dice

PROXY <host:port>;

Puede repetirse si tiene varios proxies disponibles. El host y el puerto son necesarios para decirle a npm que use la configuración del proxy así:

npm config set proxy http://[host]:[port]

y

npm config set https-proxy http://[host]:[port]

Por ejemplo, si su proxy está en my.proxy.com en el puerto 8080, los comandos npm serían:

npm config set proxy http://my.proxy.com:8080
npm config set https-proxy http://my.proxy.com:8080

Una vez que le dije a npm qué proxy usar, todo comenzó a funcionar, pude ejecutar los comandos de instalación sin ningún problema.

Gracias a la siguiente publicación por su ayuda con el descubrimiento de archivos wpad.

Otro nombre de usuario largo
fuente
6

Intenté seguir las opciones para solucionar este problema y funcionó.

  1. Desinstale Node.js versión 8.
  2. Instale Node.js versión 6.11.4
  3. Utilice la opción de registro junto con el comando para instalar cualquier paquete.

Por ejemplo, para instalar express utilicé el siguiente comando.

npm install express --registry http://registry.npmjs.org/

o

npm install express -g --registry http://registry.npmjs.org/

Si desea instalar localmente en cualquier carpeta específica, use el siguiente comando. El siguiente comando instalará express en la ruta C:\Sample\Example1.

C:\Sample1\Example1> npm install /Sample/Example1 express --registry http://registry.npmjs.org/

Nota: Si está instalando localmente en una ubicación específica, primero vaya a ese directorio usando el comando y luego ejecute el comando anterior. Si no está dentro de ese directorio y solo da la ruta en el comando, eso no funcionará.

Si le package.jsonfalta un error, ejecute el siguiente comando antes de instalar el paquete localmente

C:\Sample\Example1> npm init

El comando anterior creará el package.jsonarchivo. No es necesario proporcionar ningún dato. solo presiona enter.

Nota: Si está detrás de un firewall, es posible que deba configurar un proxy.

Añil
fuente
3

Hola, también soy nuevo en reaccionar y también enfrenté este problema después de tantos problemas que encontré una solución: simplemente ejecute en su símbolo del sistema o terminal:

npm config set registry http://registry.npmjs.org/

Esto resolverá tu problema. Enlace de referencia: http://blog.csdn.net/zhalcie2011/article/details/78726679

Desarrollador de rieles
fuente
2
Un enlace a una solución es bienvenido, pero asegúrese de que su respuesta sea útil sin él: agregue contexto alrededor del enlace para que sus compañeros usuarios tengan una idea de qué es y por qué está allí, luego cite la parte más relevante de la página. está enlazando a en caso de que la página de destino no esté disponible. Las respuestas que son poco más que un enlace pueden eliminarse.
GrumpyCrouton
3

Asegúrese de que puede acceder al repositorio corporativo que configuró en npm está disponible. Verifique su conexión VPN.

De lo contrario, restablezca el repositorio predeterminado como se muestra a continuación.

npm config set registry http://registry.npmjs.org/

¡¡Buena suerte!!

Rudra
fuente
3

Los siguientes comandos resolvieron mi problema:

npm config set proxy http://yourproxyurl.com:8080  (you need to enter your or your company proxy URL and 8080 should be replaced by your proxy port)

npm config set https-proxy http://yourproxyurl.com:8080
Santossh Kumhar
fuente
1

Si tiene acceso al registro pero el error persiste, nada de lo mencionado anteriormente no funcionaría. Noté que este problema solo es aplicable para la instalación del proyecto local (es decir, si usa -g para la instalación global, todo funciona bien).

Lo que resolvió el problema para mí: simplemente elimine una entrada relacionada con un paquete que va a instalar desde el archivo package.json de un proyecto. Después de esa próxima llamada a npm funcionará e instalará el paquete correctamente.

Alex Evseenko
fuente
1

Tuve el mismo efecto al crear una aplicación de reacción con PhpStorm. Y luego, al final, solo dice done. Ejecutar el mismo comando en la terminal me dio errores detallados. La carpeta del proyecto que he creado se nombró, lo reactque parece no ser posible.

Asegúrese de que la carpeta de su proyecto no tenga un nombre react.

Markus Zeller
fuente
0

prueba esto:

eliminar todos los archivos en la carpeta:% APPDATA% \ npm-cache \ _locks

Furetto
fuente
0

Para Windows: ejecute el instalador nuevamente y elija 'Reparar' la instalación

Trabajó para mi

lokeshrmitra
fuente
0

Parece que este error aún no se ha solucionado [1]. Algunas personas trabajan, otras no. Tampoco me trabaja.

Intenté borrar el caché con el comando: npm cache verifyluego ejecute el comando de instalación nuevamente. Trabajé.

[1]. https://github.com/npm/npm/issues/17246

NgaNguyenDuy
fuente
0

Tuve el mismo problema. Pero puede funcionar correctamente con el cambio de la red interna de la empresa a la red de visitantes.

Trepador
fuente
0

Establecí dos variables de entorno del sistema :

  1. HTTP_PROXY = <_url_proxy_>
  2. HTTPS_PROXY = <_url_proxy_>

Esto realmente funcionó para mí.

HS Raju
fuente
0

En algunas ocasiones más raras, verifique que el proyecto se pueda construir usando npmcomandos regulares . Me encontré con uno que está configurado para funcionar bower, por lo que bower install <github_url>funciona mientras npm install <github_url>da ese mensaje de error críptico inútil en todas las plataformas ...

Prusswan
fuente
0

Al instalar la herramienta de línea de comando angular (CLI), si recibe un error de retroceso, es posible que se deba a que su red está conectada con su red de cliente o la red de su empresa en la que está trabajando.

Por lo tanto, intente instalar CLI en su red pública (o en la red de punto de acceso de su dispositivo móvil) y definitivamente obtendrá CLI instalado.

Amit Kumar
fuente
0

Solución : el valor predeterminado de la clave 'proxy' y 'https-proxy' de la configuración de npm es NULL. Después de hacer más I + D, intenté establecer el valor de configuración del proxy en la clave anterior (esta solución funciona en mi escenario).

Además, la misma configuración de proxy debe aplicarse en el navegador IE Configuración de Internet >> Configuración >> Configuración de LAN.

Conclusión : En entornos corporativos / algunos, el proxy es una configuración algo obligatoria; de lo contrario, npm install no funcionará.

Problema en GitHub: https://github.com/SharePoint/sp-dev-docs/issues/3266

Puede consultar el blog para obtener información detallada https://blogs2share.blogspot.com/2019/01/spfx-environment-setup-error.html

Vikas Bansal
fuente
0

Puede resolver el problema mirando si su red tiene proxies, eso está prohibiendo el proceso de descarga. La red de mi empresa tenía un firewall habilitado, lo que me estaba causando el problema. Así que tuve que cambiarme a una red insegura (probablemente un punto de acceso de su red móvil), y eso funcionó para mí.

Nikhil Kumar
fuente
0

El mío se debió al firewall de McAfee. Está configurado en el modo Preguntar, por lo que debería haber aparecido un mensaje para solicitar la conexión a Internet, ¡pero no fue así! Entrar en McAfee y (¡temporalmente!) Deshabilitar el firewall me permitió instalar.

antonye
fuente
0

Ya tenía los proxies configurados como se describió anteriormente y funcionó hasta hoy. Entonces resultó que ahora necesito "http: //" delante de mi dirección de proxy: "http: // {proxyURL}: {proxyPort}". Entonces finalmente funcionó.

Liebster Kamerad
fuente
0

Luché con este problema durante algún tiempo antes de resolverlo.
Estoy usando High Sierra (10.13.6)
desinstalado y reinstalado nodo y NVM varias veces - con el installer.pkg, HomeBrewy, a continuación, utilizando la línea de comandos. En mi opinión, la línea de comandos funciona mejor.

Seguí estos pasos:
1. Ejecuté npm config ls -l
2. Verifiqué que el valor para globalconfigera $<installpath>/.nvm/versions/node/v12.16.3/etc/npmrcPero cuando intenté llegar a esta ruta en la Terminal, me dio. No such file or directory
Así que
3. creé la carpeta etc, creé el npmrcarchivo y agregué esta línea.

registry = "https://registry.npmjs.org/"


No tengo el ~/.npmrcarchivo en mi$HOME

Then
4. Volví a ejecutar el npm installcomando.


Tenga en cuenta que esto todavía arrojó el rollbackFailedOptional: verb npm-sessionerror, pero esta vez se completó , aunque con un error diferente. Puede probar estos pasos y ver si funciona.

Para aquellos que tienen curiosidad, arrojó un Response timeout while trying to fetch https://registry.npmjs.org/<package> (over 30000ms)error, así que agregué timeout = "60000"al /etc/npmrcarchivo (como se encuentra en otro hilo de Stackoverflow) y lo intenté nuevamente. Esto funcionó para mí.

¡Espero que esto ayude!

Soumitra
fuente
0

Pruebe este comando con todas las respuestas aquí para resolver el problema https://stackoverflow.com/a/54173142/12142401 si el problema persiste Siga los siguientes pasos

Desinstale completamente nodejs consulte esta respuesta para la desinstalación completa de nodejs https://stackoverflow.com/a/20711410/12142401

Descargue la configuración actualizada de nodejs desde su sitio web Instálelo en cualquier unidad, pero no en la unidad instalada previamente, como si lo hubiera instalado en la unidad C y luego lo instale en la unidad D, S, G Ejecute su comando npm, funcionará completamente bien

usuario12142401
fuente
-2

Prueba esto. Funcionó bien para mi

npm install / your_floder_location nombre_paquete --registry http://registry.npmjs.org/

A continuación se muestra el comando exacto para mí para instalar el paquete vue-router en mi proyecto laravel (el nombre de mi proyecto vue_laravel)

aslam004: vue_laravel $ npm install / var / www / html / projects / vue_laravel vue-router --registry http://registry.npmjs.org/

Buena suerte

Aslam Ansari
fuente
-3

use sudo antes de su comando como


sudo npm install

Ankit Gaur
fuente