npm install Fehler: rollbackFailedOptional

81

Wenn ich npm installneue Pakete ausprobiere, wird der folgende Fehler angezeigt:

rollbackFailedOptional: Verb npm-session 585aaecfe5f9a82

node --version
8.4.0

npm --version
5.3.0
Bipul Prasai
quelle
1
Ich erhalte auch den gleichen Fehler. Hast du eine Lösung dafür gefunden?
Anil
Dies liegt höchstwahrscheinlich an der Firewall Ihres Unternehmens. Verwenden Sie eine Internetverbindung außerhalb des Unternehmens oder versuchen Sie, einen vom Administrator Ihres Unternehmens bereitgestellten Proxy festzulegen, um den NPM-Repo-Server zu erreichen.
Prometheus

Antworten:

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

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

löste mein Problem.

Nochmals: Überprüfen Sie, ob Sie eine ordnungsgemäße Internetverbindung haben.

anvarik
quelle
3
Erklären Sie diese Informationen, hat auch bei mir nicht funktioniert.
Jorgesys
2
für mich muss verwenden https://registry.npmjs.org/(beachten Sie die https)
Walty Yeung
Du
rettest
Dies hat mein Problem leider nicht gelöst. Ich bin nur in einem einfachen Heimnetzwerk, kein Proxy. Ich habe diesen Fehler schon lange ein- und ausgeschaltet. Manchmal kann ich bei Verwendung von VS-Code eine cmd-Eingabeaufforderung (kein VS-Code) öffnen und es funktioniert, aber nicht in die IDE. Ich habe gerade NodeJS deinstalliert, alle npm-Ordner in AppData gelöscht, neu installiert und habe immer noch diesen Fehler.
Luke T O'Brien
55

Versuche dies

npm config rm proxy
npm config rm https-proxy
cwtuan
quelle
3
Ich habe auch für mich gearbeitet, aber wissen Sie, was dieser Befehl getan hat und warum er funktioniert hat? Ich frage mich, ob ich stattdessen etwas installieren muss. Vielen Dank!
aztec242
1
Der Grund dafür ist, dass Ihre Registrierungseinstellungen auf einen anderen als den Standardwert eingestellt wurden und diese Befehle diese Konfigurationseinstellungen entfernen, damit sie auf ihre Standardwerte zurückgesetzt werden können. In meinem Fall verwendet meine Arbeit eine benutzerdefinierte Registrierung, die kürzlich hinter einer Firewall platziert wurde. Wenn ich zu Hause an einem persönlichen Projekt arbeite, überschreibe ich die npm-Einstellungen für dieses Projekt speziell in diesem Verzeichnis. Weitere Informationen finden Sie in der Antwort von @ lambda unten.
Andy Groff
Hat gut funktioniert. Nach dem Versuch das rollBackFailed .. erschien wieder, ist aber nach ein paar Sekunden verschwunden. Ich habe damit Nativescript Easilty installiert. Vielen Dank
Md Ashraful Islam
2
Es hat bei mir nicht funktioniert, bis ich auch liefnpm config set registry http://registry.npmjs.org/
Davis
Gleich für mich wie @davis
kayleeFrye_onDeck
20

In meinem Fall musste ich die .npmrcdirekt bearbeiten und die Proxy-Einstellungen manuell hinzufügen.

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

Hoffe das hilft jemandem.

miqrc
quelle
Vielen Dank! In meinem Fall (Kubuntu) wurden die Einstellungen irgendwie zur Benutzerdatei hinzugefügt .npmrcunter~/.npmrc
a1300
Ich bin traurig, dass wenn npm die Registrierung nicht erreichen kann, das Verhalten darin besteht, mit einer arkanen Statusmeldung und ohne Anzeichen dafür, dass versucht wird, einen Remote-Host zu erreichen, dort zu hängen. Gut erzogene Befehlszeilentools sollten den Benutzern mitteilen, wann sie Internetaufgaben erledigen
Matt Montag,
Wo finde ich die Proxy-Einstellungen? @miqrc
Akhila
18

Die Ursache hierfür könnte Ihre aktuelle NPM-Registrierung sein . Versuchen Sie, nach einer .npmrcDatei zu suchen . Diese können sich an verschiedenen Orten befinden:

  • Pro-Projekt-Konfigurationsdatei ( /path/to/my/project/.npmrc)
  • Konfigurationsdatei pro Benutzer ( ~/.npmrc)
  • globale Konfigurationsdatei ( $PREFIX/etc/npmrc)
  • npm integrierte Konfigurationsdatei ( /path/to/npm/npmrc)

In diesen kann es so etwas geben

registry=https://mycustomregistry.example.org

Dies hat Vorrang vor dem Standard ( http://registry.npmjs.org/). Sie können diese Zeile in der Datei löschen oder die Standardregistrierung wie folgt verwenden:

npm <command> --registry http://registry.npmjs.org/
Lambda
quelle
2
Laufen npm config set registry http://registry.npmjs.org/funktionierte für mich nach dem Konfigurieren der Proxy-Einstellungen
rainversion_3
15

Die wahrscheinlichste npm-Registrierung kann von npm nicht erreicht werden. Überprüfen Sie die npm-Proxy-Konfiguration

Ich hatte genau das gleiche Problem unter Windows Server 2008 R2. Ich vermutete zunächst die erweiterte Sicherheitskonfiguration von Internet Explorer, aber nachdem ich diese erfolglos deaktiviert hatte, stellte sich heraus, dass npm nicht für die Verwendung meiner Unternehmens-Proxy-Verbindung zum Internet konfiguriert war.

Es stellt sich heraus, dass npm die über Internetoptionen> Registerkarte Verbindungen> LAN-Einstellungen gültigen Proxy-Einstellungen nicht verwendet, wenn der Server auf "Einstellungen automatisch erkennen" eingestellt ist. Die automatische Erkennung von Einstellungen garantiert nicht, dass tatsächlich ein Proxy verwendet wird . Dies bedeutet lediglich, dass Windows die Proxy-Einstellungen für Internet Explorer automatisch konfiguriert, wenn eine spezielle Datei "wpad.dat" unter http: // wpad. [Yourdomain "gefunden wird .com] /wpad.dat .

Sie können testen, ob in Ihrer Organisation eine wpad.dat-Datei verwendet wird, indem Sie Folgendes in einen Webbrowser eingeben.

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

Wenn keine Datei verfügbar ist, verwenden Sie wahrscheinlich keinen organisationsweiten Proxy. Wenn man zum Browser zurückkehrt, dann ...

Am Ende dieser Datei sollte eine Zeile mit der Aufschrift angezeigt werden

PROXY <host:port>;

Dies kann wiederholt werden, wenn mehrere Proxys verfügbar sind. Der Host und der Port werden benötigt, um npm anzuweisen, die Proxy-Einstellungen wie folgt zu verwenden:

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

und

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

Wenn sich Ihr Proxy beispielsweise auf Port 8080 auf my.proxy.com befindet, lauten die npm-Befehle:

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

Nachdem ich npm mitgeteilt hatte, welcher Proxy verwendet werden soll, konnte ich die Installationsbefehle problemlos ausführen.

Vielen Dank an den folgenden Beitrag für die Hilfe bei der Erkennung von wpad-Dateien.

AnotherLongUsername
quelle
6

Ich habe versucht, die folgenden Optionen zu verwenden, um dieses Problem zu beheben, und es hat funktioniert.

  1. Deinstallieren Sie Node.js Version 8.
  2. Installieren Sie Node.js Version 6.11.4
  3. Verwenden Sie die Registrierungsoption zusammen mit dem Befehl, um ein beliebiges Paket zu installieren.

Zum Beispiel habe ich zum Installieren von Express den folgenden Befehl verwendet.

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

oder

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

Wenn Sie lokal in einem bestimmten Ordner installieren möchten, verwenden Sie den folgenden Befehl. Der folgende Befehl installiert Express on Path C:\Sample\Example1.

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

Hinweis: Wenn Sie lokal an einem bestimmten Speicherort installieren, wechseln Sie zuerst mit dem Befehl in dieses Verzeichnis und führen Sie dann den obigen Befehl aus. Wenn Sie sich nicht in diesem Verzeichnis befinden und nur den Pfad im Befehl angeben, funktioniert dies nicht.

Wenn Sie einen package.jsonfehlenden Fehler erhalten, führen Sie den folgenden Befehl aus, bevor Sie das Paket lokal installieren

C:\Sample\Example1> npm init

Der obige Befehl erstellt eine package.jsonDatei. Es müssen keine Daten angegeben werden. Drücken Sie einfach die Eingabetaste.

Hinweis: Wenn Sie sich hinter einer Firewall befinden, müssen Sie möglicherweise einen Proxy festlegen.

Anil
quelle
3

Hallo, ich bin auch neu in der Reaktion und habe mich nach so vielen Problemen mit diesem Problem konfrontiert, dass ich eine Lösung gefunden habe: Führen Sie einfach Ihre Eingabeaufforderung oder Ihr Terminal aus:

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

Dies wird Ihr Problem lösen. Referenzlink: http://blog.csdn.net/zhalcie2011/article/details/78726679

Schienenentwickler
quelle
2
Ein Link zu einer Lösung ist willkommen, aber stellen Sie sicher, dass Ihre Antwort ohne sie nützlich ist: Fügen Sie dem Link einen Kontext hinzu, damit Ihre Mitbenutzer eine Vorstellung davon haben, was es ist und warum es dort ist, und zitieren Sie dann den relevantesten Teil der Seite, die Sie verwenden. erneutes Verknüpfen mit, falls die Zielseite nicht verfügbar ist. Antworten, die kaum mehr als ein Link sind, können gelöscht werden.
GrumpyCrouton
3

Stellen Sie sicher, dass Sie auf das in npm konfigurierte Unternehmens-Repository zugreifen können. Überprüfen Sie Ihre VPN-Verbindung.

Andernfalls setzen Sie es wie unten beschrieben auf das Standard-Repository zurück.

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

Viel Glück!!

Rudra
quelle
3

Die folgenden Befehle haben mein Problem behoben:

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
quelle
1

Wenn Sie Zugriff auf die Registrierung haben, der Fehler jedoch weiterhin auftritt, funktioniert nichts, was oben erwähnt wurde, nicht. Ich habe festgestellt, dass dieses Problem nur für die Installation des lokalen Projekts gilt (dh wenn Sie -g für die globale Installation verwenden, funktioniert alles einwandfrei).

Was hat das Problem für mich gelöst: Entfernen Sie einfach einen Eintrag in Bezug auf ein Paket, das Sie installieren möchten, aus der Datei package.json eines Projekts. Nach diesem nächsten Aufruf von npm funktioniert das Paket und wird erfolgreich installiert.

Alex Evseenko
quelle
1

Ich hatte den gleichen Effekt beim Erstellen einer Reaktions-App mit PhpStorm. Und am Ende steht nur noch done. Das Ausführen des gleichen Befehls im Terminal gab mir detaillierte Fehler. Der von mir erstellte Projektordner wurde benannt, reactwas ein No-Go zu sein scheint.

Stellen Sie sicher, dass Ihr Projektordner nicht benannt ist react.

Markus Zeller
quelle
0

Versuche dies:

Löschen Sie alle Dateien im Ordner:% APPDATA% \ npm-cache \ _locks

Furetto
quelle
0

Für Windows: Führen Sie das Installationsprogramm erneut aus und wählen Sie "Reparatur"

Hat für mich gearbeitet

lokeshrmitra
quelle
0

Dieser Fehler scheint noch nicht behoben zu sein [1]. Einige Leute arbeiten, andere nicht. Ich werde auch nicht gearbeitet.

Ich habe versucht, den Cache mit dem Befehl zu löschen: npm cache verifyFühren Sie dann den Befehl install erneut aus. Ich wurde gearbeitet.

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

NgaNguyenDuy
quelle
0

Ich hatte das gleiche Problem. Mit dem Wechsel vom internen Netzwerk des Unternehmens zum Besuchernetzwerk kann es jedoch ordnungsgemäß ausgeführt werden.

Bergsteiger
quelle
0

Ich habe zwei Systemumgebungsvariablen festgelegt -

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

Das hat bei mir tatsächlich funktioniert.

HS Raju
quelle
0

Überprüfen Sie in einigen seltenen Fällen, ob das Projekt mit regulären npmBefehlen erstellt werden kann. Ich bin auf eine gestoßen, die für die Arbeit konfiguriert ist bower, also bower install <github_url>funktioniert, während npm install <github_url>auf allen Plattformen diese nicht hilfreiche kryptische Fehlermeldung angezeigt wird ...

prusswan
quelle
0

Wenn während der Installation des Angular Command Line Tools (CLI) ein Rollback-Fehler auftritt, kann dies daran liegen, dass Ihr Netzwerk mit Ihrem Client-Netzwerk oder Ihrem Unternehmensnetzwerk verbunden ist, an dem Sie arbeiten.

Versuchen Sie also bitte, CLI in Ihrem öffentlichen Netzwerk (oder im Hotspot-Netzwerk Ihres Mobiltelefons) zu installieren. Dann wird CLI definitiv installiert.

Amit Kumar
quelle
0

Lösung : Der Standardwert für 'proxy' und 'https-proxy' der npm config ist NULL. Nachdem ich weitere Forschungs- und Entwicklungsarbeiten durchgeführt hatte, versuchte ich, den Proxy-Einstellungswert auf den obigen Schlüssel zu setzen (diese Lösung funktioniert in meinem Szenario).

Dieselben Proxy-Einstellungen müssen auch in den Internet-Einstellungen >> Einstellungen >> LAN-Einstellungen des IE-Browsers angewendet werden.

Schlussfolgerung : In Unternehmensumgebungen / bestimmten Umgebungen ist der Proxy eine obligatorische Einstellung, da sonst die npm-Installation nicht funktioniert.

Problem auf GitHub: https://github.com/SharePoint/sp-dev-docs/issues/3266

Ausführliche Informationen finden Sie im Blog unter https://blogs2share.blogspot.com/2019/01/spfx-environment-setup-error.html

Vikas Bansal
quelle
0

Sie können das Problem beheben, indem Sie prüfen, ob in Ihrem Netzwerk Proxys vorhanden sind, die den Downloadvorgang verhindern. Im Netzwerk meines Unternehmens war eine Firewall aktiviert, was das Problem für mich verursachte. Also musste ich zu einem unsicheren Netzwerk wechseln (wahrscheinlich ein Hotspot von Ihrem Mobilfunknetz), und das hat bei mir funktioniert.

Nikhil Kumar
quelle
0

Meins war auf die McAfee-Firewall zurückzuführen. Es ist auf den Ask-Modus eingestellt, sollte also eine Aufforderung zur Abfrage der Internetverbindung angezeigt haben, hat dies aber nicht getan! Durch das Aufrufen von McAfee und (vorübergehend!) Deaktivieren der Firewall konnte ich die Installation durchführen.

antonye
quelle
0

Ich habe die Proxys bereits wie oben beschrieben eingerichtet und es hat bis heute funktioniert. Dann stellte sich heraus, dass ich jetzt "http: //" vor meiner Proxy-Adresse brauche: "http: // {proxyURL}: {proxyPort}". Dann hat es endlich geklappt.

Liebster Kamerad
quelle
0

Ich hatte einige Zeit mit diesem Problem zu kämpfen, bevor ich es herausfand.
Ich bin mit High Sierra (10.13.6)
deinstalliert und neu installiert Knoten und NVM mehrfach - mit den installer.pkg, HomeBrewund dann über die Befehlszeile. IMO, die Kommandozeile funktioniert am besten.

Ich folgte diesen Schritten:
1. Ran npm config ls -l
2. Überprüft , dass der Wert für die globalconfigwar $<installpath>/.nvm/versions/node/v12.16.3/etc/npmrcaber , als ich auf diesem Weg im Terminal zu bekommen versucht, es gab mir No such file or directory
Also ich
3. den Ordner erstellt etc, die erstellte npmrcDatei und hinzugefügt , um diese Linie darin.

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


Ich habe die ~/.npmrcDatei nicht in meinem$HOME

Then
4. Ich habe den npm installBefehl erneut ausgeführt.


Beachten Sie, dass dies den rollbackFailedOptional: verb npm-sessionFehler immer noch auslöste , diesmal jedoch abgeschlossen war , allerdings mit einem anderen Fehler. Sie können diese Schritte ausprobieren und prüfen, ob sie funktionieren.

Für diejenigen, die neugierig sind, gab es einen Response timeout while trying to fetch https://registry.npmjs.org/<package> (over 30000ms)Fehler, also fügte ich den timeout = "60000"der /etc/npmrcDatei hinzu (wie in einem anderen Stackoverflow-Thread gefunden) und versuchte es erneut. Das hat bei mir funktioniert.

Hoffe das hilft!

Soumitra
quelle
0

Versuchen Sie diesen hier beantworteten Befehl all, um das Problem zu lösen. Https://stackoverflow.com/a/54173142/12142401 Wenn das Problem weiterhin besteht, führen Sie die folgenden Schritte aus

Deinstallieren Sie den Knoten vollständig. Überprüfen Sie diese Antwort, um den Knoten vollständig zu deinstallieren. Https://stackoverflow.com/a/20711410/12142401

Laden Sie das aktualisierte NodeJS-Setup von der Website herunter. Installieren Sie es auf einem beliebigen Laufwerk, jedoch nicht auf einem zuvor installierten Laufwerk. Wenn Sie es auf dem Laufwerk C installiert haben, installieren Sie es auf dem Laufwerk D, S. und G. Führen Sie Ihren Befehl npm aus. Es funktioniert einwandfrei

user12142401
quelle
-2

Versuche dies. Es hat gut funktioniert für mich

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

Unten ist der genaue Befehl für mich zum Installieren des vue-router-Pakets in meinem Laravel-Projekt (mein Projektname vue_laravel).

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

Viel Glück

Aslam Ansari
quelle
-3

Verwenden Sie sudo vor Ihrem Befehl als


sudo npm installieren

Ankit Gaur
quelle