Ich habe kürzlich begonnen, diesen Fehler in einem Angular 8-Projekt (Knoten 10.16.0) zu erhalten, an dem ich arbeite. Das Ausführen der Browserliste "npm update caniuse-lite" hat nichts bewirkt
Also habe ich package-lock.json entfernt, node_modules entfernt und npm install ausgeführt, aber die Browserlistendatei ist verschwunden. Wenn ich ng build ausführe, erhalte ich dieselbe Meldung: Browserliste: caniuse-lite ist veraltet. Bitte führen Sie den nächsten Befehl ausnpm update
Ich sehe diesen Beitrag zum selben Thema : Browserliste: caniuse-lite ist veraltet. Bitte führen Sie den nächsten Befehl `npm update caniuse-lite browserslist` aus. Es handelt sich jedoch um WebCompiler und Autoprefixer, und ich habe keine Ahnung davon. Bitte führen
quelle
npm update caniuse-lite browserslist
?npm update
aber das hat das Problem nicht gelöst, sondern meine Typoskript-Version für Winkel 8 zu hoch gemacht.Antworten:
Das veraltete Caniuse-Lite-Problem wurde behoben, indem die folgenden Befehle ausgeführt wurden.
quelle
npm cache clean
funktioniert nicht direkt, da es in den neuesten Versionen von npm automatisch verarbeitet wird. Möchten Sie, dass wir verwenden--force
? Wenn ja, erklären Sie bitte, warum wir den Cache zerstören sollten.npm install caniuse-lite@latest --save
TLDR: (mag ohne die Erklärung kontraintuitiv erscheinen)
Erläuterung:
Diese Warnmeldung ("canisuse-lite ist veraltet, bitte ...") wird beim Erstellen / Starten von Skripten in der Browserliste ausgegeben, wenn festgestellt wird, dass die installierte Version von caniuse-lite älter als 2 Versionen der aktuellen Version ist. Wenn sich an Ihrem Projekt nichts geändert hat und Sie diese Meldung beim Starten oder Erstellen Ihres Projekts plötzlich sehen, bedeutet dies wahrscheinlich, dass ein aktuelles Versionsupdate für caniuse-lite vorliegt.
Leider ist die in der Browserliste angezeigte Textnachricht nur hilfreich, wenn Sie caniuse-lite als Abhängigkeit von Ihrem Projekt installiert haben. Höchstwahrscheinlich haben Sie nicht. Wenn Sie also das vorgeschlagene 'npm-Update caniuse-lite' oder 'npm-Update' caniuse-lite @ latest '(oder' npm install ') ausführen, sieht npm das in Ihren package.json-Abhängigkeiten aufgeführte Paket nicht und ignoriert es daher die Anfrage.
Wie wurden diese Pakete dann zu Abhängigkeiten? Als Ihr Projekt erstellt wurde (möglicherweise mit App AngularApp oder Create-React-App oder ähnlichem für Ihr Framework), installierte npm die Browserliste als Abhängigkeit von den benötigten Tools und nicht als eine der Abhängigkeiten Ihres Projekts. Gleichzeitig wurde caniuse-lite als Abhängigkeit von der Browserliste installiert. Später, als das Projekt aktualisiert wurde, wurde eine package-lock.json-Datei erstellt, die alle Abhängigkeiten von einer bestimmten Version sperrt.
Wenn Sie die Versionsinformationen in der Liste der Abhängigkeiten in package-lock.json aktualisieren könnten, würde das Ausführen von 'npm install' diese Pakete in node_modules aktualisieren. Sie sollten package-lock.json nicht manuell bearbeiten. Stattdessen ist der beste Weg, dies zu tun:
Machen Sie diese Pakete vorübergehend zu einer Abhängigkeit Ihres Projekts:
npm install caniuse-lite browserslist
Zusätzlich zum Aktualisieren des Pakets auf die neueste Version wird die Abhängigkeitsliste sowohl in package.json als auch (am wichtigsten) package-lock.json aktualisiert.
Entfernen Sie diese Pakete als direkte Abhängigkeiten Ihres Projekts:
npm deinstallieren caniuse-lite browserlist
Da diese Pakete von anderen Abhängigkeiten verwendet werden, werden sie nicht aus node_modules entfernt. Nur package.json wird aktualisiert, um sie als Projektabhängigkeit zu entfernen.
Übernehmen Sie package-lock.json. Jeder andere kann jetzt einfach 'npm install' ausführen, um die aktualisierten zwei Pakete aus der Liste der Unterabhängigkeiten in package-lock.json abzurufen und die Warnmeldung zu stoppen.
quelle
npm update
) und mit einem sauberen Winkel-Setup.caniuse-lite
und die Nachricht ist weg