npm · npm
Die Meldung
npm ERR! npm ci can only install packages when your package.json and package-lock.json or npm-shrinkwrap.json are in sync.
Was es bedeutet
npm ci installiert streng das, was das Lockfile festhält, und brach vor dem Start ab, weil package.json etwas verlangt, das im Lockfile nicht steht. Das passiert, wenn jemand package.json von Hand bearbeitet oder darin einen Konflikt gelöst hat, ohne install auszuführen, oder package.json ohne das Lockfile committet hat. Führen Sie lokal einmal npm install aus, damit das Lockfile passt, und committen Sie das Lockfile — das ist der ganze Fix. package-lock.json zu löschen, um weiterzukommen, löst stattdessen alle Abhängigkeiten auf neuere Versionen neu auf und verändert stillschweigend, was Ihr Build enthält.
Die Lösung
npm install- Ausgegeben von
- npm
- npm
- 20
Bei npm steht die Ursache in der ersten code-XXXX-Zeile und nicht in den letzten sechs npm-ERR!-Zeilen, und wenn der Fehler aus dem Abhängigkeitsbaum oder einem Native-Build statt aus eigenem Code kommt, löst das Löschen von node_modules mit erneuter Installation etwa die Hälfte.
Eine Fehlermeldung lesen
- Von der ersten Zeile abwärts lesen. Weiter unten geht es um das Innere des Werkzeugs; die Ursache steht meist oben.
- Gibt es Datei und Zeilennummer, dort anfangen — nicht der oberste Stack-Frame, sondern die oberste Zeile, die eine eigene Datei nennt.
- Die Meldung wörtlich suchen, vorher aber eigene Pfade und Variablennamen entfernen; genau die verhindern den Treffer.
- Dieselbe Lage wird je Werkzeugversion anders formuliert. Passen die Treffer nicht, die Versionsnummer mit in die Suche.
- Vor dem Einfügen einer Lösung prüfen, was sie verwirft. Manches davon lässt sich nicht zurückholen.
Häufige Fragen
Q. Was bedeutet „npm ERR! npm ci can only install packages when your package.json and package-lock.json or npm-shrinkwrap.json are in sync.“?
npm ci installiert streng das, was das Lockfile festhält, und brach vor dem Start ab, weil package.json etwas verlangt, das im Lockfile nicht steht. Das passiert, wenn jemand package.json von Hand bearbeitet oder darin einen Konflikt gelöst hat, ohne install auszuführen, oder package.json ohne das Lockfile committet hat. Führen Sie lokal einmal npm install aus, damit das Lockfile passt, und committen Sie das Lockfile — das ist der ganze Fix. package-lock.json zu löschen, um weiterzukommen, löst stattdessen alle Abhängigkeiten auf neuere Versionen neu auf und verändert stillschweigend, was Ihr Build enthält.
Q. Wie behebe ich das?
npm install — vor dem Ausführen oben prüfen, was dieser Befehl verwirft.
Q. Welches Werkzeug gibt das aus?
npm. Es gehört zu npm, und die Meldung hat 18 Wörter.