Browserliste: caniuse-lite ist veraltet. Bitte führen Sie den nächsten Befehl `npm update caniuse-lite browserslist` aus


89

Vor kurzem, wenn ich meine scss-Dateien kompiliere, erhalte ich eine Fehlermeldung. Die Fehlermeldung lautet:

Browserliste: caniuse-lite ist veraltet. Bitte führen Sie den nächsten Befehl ausnpm update caniuse-lite browserslist

Zuerst, wie die Nachricht sagt, bin ich gelaufen, npm update caniuse-lite browserslistaber es hat das Problem nicht behoben. Ich habe das gesamte Nod-Module-Verzeichnis gelöscht und erneut installiert. Außerdem habe ich den gesamten Ordner aktualisiert, npm updateaber keiner von ihnen hat das Problem gelöst. Ich habe auch Autoprefixer und Browserliste neu installiert, aber keiner von ihnen hat das Problem gelöst.

Wenn ich entferne

"options": {
      "autoPrefix": "> 1%"
    }

Meiner compilerconfig.jsonMeinung nach funktioniert alles einwandfrei, was bedeutet, dass es wahrscheinlich mit dem Autoprefixer zusammenhängt. Außerdem habe ich die Paketversion manuell auf die neueste Version geändert package.jsonund neu installiert, aber kein Glück.

Antworten:


42

Es hört sich so an, als würden Sie die Web Compiler-Erweiterung von Visual Studio verwenden. Hierfür gibt es ein offenes Problem: https://github.com/madskristensen/WebCompiler/issues/413

In dieser Ausgabe gibt es eine Problemumgehung:

  1. Schließen Sie Visual Studio
  2. C:\Users\USERNAME\AppData\Local\Temp\WebCompilerX.X.XGehen Sie zu (X ist die Version von WebCompiler)
  3. Löschen Sie folgende Ordner aus dem node_modulesOrdner: caniuse-liteund browserslist Öffnen Sie CMD (innen C:\Users\USERNAME\AppData\Local\Temp\WebCompilerX.X.X) und führen Sie es aus:npm i caniuse-lite browserslist

1
Ich habe es getan und ich habe diesen Fehler nicht mehr, aber ich habe einen neuen Fehler erhalten: Plugin-Fehler: Das Modul 'Autoprefixer' kann nicht gefunden werden. Ich habe versucht, den Autoprefixer neu zu installieren und zu aktualisieren, aber ich erhalte immer noch diesen Fehler.
Mehrdad Babaki

Klingt nach einem anderen Thema. Wenn Sie online einen Link zu Ihrem Projekt haben oder ein anderes Projekt zusammenstellen können, bei dem das Problem auftritt, würde ich es mir gerne ansehen.
Scott Kuhl

Es scheint, als ich versuchte, das Problem durch ein Upgrade und eine Neuinstallation des Autoprefixers zu beheben, war etwas kaputt. Zum Glück hat sich der Web Compiler heute selbst aktualisiert und ich habe diese Fehlermeldung erneut gesehen. Ich habe die obigen Schritte ausgeführt und dieses Mal wurde das Problem behoben.
Mehrdad Babaki

Irgendeine Idee, wo sich dieses Verzeichnis auf dem Mac befindet?
Safa Alai

35

Versuchen Sie dies, es hat mein Problem gelöst npx browserslist@latest --update-db


1
Zum Kontext: Meine IDE ist VS-Code, und mein JS-Projekt enthielt nur Parcel, React und React-Dom, als ich diesen Fehler sah. Keine der oben genannten Optionen hat funktioniert. Diese Lösung hat meine behoben.
Klay

In PhpStorm hat super funktioniert.
Neolot

arbeitete für VueJS
JOG

Das hat mir sehr geholfen, danke liebe 5 Sterne
PacyL.js

Schlägt unter Windows `` `C: \ projects \ ember-cli-typescript-blueprints> npx-Browserliste @ latest --update-db npm ERR fehl! cb.apply ist keine Funktion npm ERR! Ein vollständiges Protokoll dieses Laufs finden Sie in: npm ERR! c: \ npm \ cache_logs \ 2020-11-15T14_19_08_958Z-debug.log Die Installation für ['browserslist @ latest'] ist
bryan.crotaz fehlgeschlagen

31

Für Winkelentwickler

Obwohl ich das sehr spät beantworte. Ich habe die schlechte Angewohnheit, Änderungsprotokolle aller von mir verwendeten Bibliotheken zu überprüfen while und während ich die Versionshinweise von Angular CLI überprüfe, habe ich herausgefunden, dass sie gestern (9. Januar 2020) einen neuen Patch veröffentlicht haben, der dieses Problem behebt.

https://github.com/angular/angular-cli/releases/tag/v8.3.22

Wenn Sie also ausgeführt werden ng update, sollten Sie Updates erhalten für @angular/cli:

Geben Sie hier die Bildbeschreibung ein

Durch Ausführen ng update @angular/cliwird diese Warnung behoben.

Prost!


19

Ich habe eine Abkürzung gefunden, anstatt sie durchzugehen . vs code appData/webCompilerIch habe sie als Abhängigkeit zu meinem Projekt mit diesem Cmd hinzugefügt npm i caniuse-lite browserslist. Sie können es jedoch global installieren, um zu vermeiden, dass es jedem Projekt hinzugefügt wird.

Nach der Installation können Sie es aus Ihrem Projekt entfernen package.jsonund ausführen npm i.

Aktualisieren:

Falls die obige Lösung das Problem nicht behoben hat. Sie könnten ausführen npm update, da dies veraltete / veraltete Pakete aktualisieren würde.

Hinweis:

Nachdem Sie das npm-Update ausgeführt haben, fehlen möglicherweise Abhängigkeiten. Verfolgen Sie den Fehler und installieren Sie die fehlenden Abhängigkeiten. Meins war Nodemon, das ich reparierenpm i nodemon -g


4
Ich hatte den Ordner / WebCompiler nicht in meinem Ordner / TEMP, wie einige andere hier vorgeschlagene Beiträge, also habe ich diese Befehlszeile ausgeführt und es scheint, dass das Problem behoben wurde.
AppDreamer

13

Fortsetzung der obigen Antwort .

Hatte den gleichen "Plugin-Fehler" wie @MehrdadBabaki. Ich habe den Webcompiler deinstalliert, den oben genannten AppData WebCompiler-Ordner gelöscht, dann VS2019 erneut geöffnet und den Webcompiler neu installiert.

DANN ging ich wieder in den WebCompiler-Ordner und tat npm i autoprefixer@latest npm i caniuse-lite@latestundnpm i caniuse-lite browserslist@latest


Aktualisieren Sie einfach Autoprefixer, Caniuse-Lite, Browser-Liste ist gut für mich
cwhsu

9

npm --depth 9999 updateDas Problem wurde für mich behoben - anscheinend, weil ich package-lock.jsonauf den veralteten Versionen bestand.


11
Auch npm --depth 99 update caniuse-lite browserslistverursachte JavaScript heap out of memoryin meinem Projekt, aber npm --depth 20 update caniuse-lite browserslistschnell und löste den Fehler in meinem Fall laufen.
Alexandr Nil

5

In meinem Fall löschte ich die aus caniuse-lite, browserslistaus Ordnern node_modules.

Dann gebe ich den folgenden Befehl ein, um die Pakete zu installieren.

npm i -g browserslist caniuse-lite --save

hat gut funktioniert.


1
Wir mussten hinzufügennpm i browserslist caniuse-lite --save
hinterhältiger

3

Löschen node_modulesund package-lock.jsonund npm ilösen Sie das Problem für mich.


1
Das Löschen von package-lock.json kann zu fehlerhaften Änderungsfehlern führen, wenn Sie eine lange Geschichte der Paketinstallation haben, z. B. ein Projekt, das mehr als ein Jahr lang gearbeitet und entwickelt wurde und über Pakete mit vielen Abhängigkeiten der 3. Ebene verfügt bahnbrechende Veränderungen
kafinsalim

2

Wie in der Antwort von Scott Kuhl erwähnt, wird dieses Problem unter https://github.com/madskristensen/WebCompiler/issues/413 erwähnt

Für mich npm i caniuse-lite- browserslistfunktionierte das Ausführen des Befehls nur etwa einen halben Tag, bevor es wieder zu einem Problem kam.

Die folgende Lösung, die im Beitrag erwähnt wird, funktioniert viel besser. Dadurch wird die Datei node.js so aktualisiert, dass sie console.loganstelle der console.warnRückgabe dieser Fehler verwendet wird.

Sie können diese Datei unter C: \ Benutzer \ [Benutzername] \ AppData \ Local \ Temp \ WebCompiler [Versionsnummer] \ Knotenmodule \ Browserliste manuell aktualisieren

Oder fügen Sie Ihrer .csproj-Datei Folgendes hinzu, damit dies automatisch erfolgt:

  1. Klicken Sie mit der rechten Maustaste auf die Projektdatei und wählen Sie "Projekt entladen".
  2. Bearbeiten Sie die .csproj-Datei
  3. Fügen Sie Folgendes in die Projektdatei ein. Ich habe es gegen Ende der Datei eingefügt, vor dem </Project>End-Tag und bevor das Build-Web-Compiler-Paket importiert wurde.
    <ItemGroup>
        <PackageReference Include="MSBuildTasks" Version="1.5.0.235">
            <PrivateAssets>all</PrivateAssets>
            <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
        </PackageReference>
    </ItemGroup>
    <PropertyGroup>
        <TempFolder>$([System.IO.Path]::GetTempPath())</TempFolder>
    </PropertyGroup>
    <ItemGroup>
        <BrowsersListNodeJsFiles Include="$(TempFolder)\WebCompiler*\node_modules\browserslist\node.js" />
    </ItemGroup>
    <Target Name="BrowsersListWarningsAsInfo" BeforeTargets="WebCompile">
        <FileUpdate Files="@(BrowsersListNodeJsFiles)"
                    Regex="console.warn"
                    ReplacementText="console.log" />
    </Target>

  1. Laden Sie das Projekt erneut in die Lösung.

Vielen Dank! Dies war die beste Lösung für mich. Die oben genannten Korrekturen würden jeden zweiten Tag veraltet sein!
Bradly Bennison

2

Ich habe dieses Problem Schritt für Schritt behoben:

  1. entfernen node_modules
  2. entfernen package-lock.json,
  3. Lauf npm --depth 9999 update
  4. Lauf npm install

1

Ich hatte das gleiche Problem auch dieser Befehl funktioniert für mich

npm i autoprefixer@latest

Es wurde automatisch eine Bedarfsabhängigkeit in package.jsonund eine package-lock.jsonDatei wie unten hinzugefügt :

package.json

"autoprefixer": "^9.6.5",

package-lock.json

"@angular-devkit/build-angular": {

...

"dependencies": {
    "autoprefixer": {
      "version": "9.4.6",
      "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.4.6.tgz",
      "integrity": "sha512-Yp51mevbOEdxDUy5WjiKtpQaecqYq9OqZSL04rSoCiry7Tc5I9FEyo3bfxiTJc1DfHeKwSFCUYbBAiOQ2VGfiw==",
      "dev": true,
      "requires": {
        "browserslist": "^4.4.1",
        "caniuse-lite": "^1.0.30000929",
        "normalize-range": "^0.1.2",
        "num2fraction": "^1.2.2",
        "postcss": "^7.0.13",
        "postcss-value-parser": "^3.3.1"
      }
    },

...

  }

...

"autoprefixer": {
    "version": "9.6.5",
    "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.6.5.tgz",
    "integrity": "sha512-rGd50YV8LgwFQ2WQp4XzOTG69u1qQsXn0amww7tjqV5jJuNazgFKYEVItEBngyyvVITKOg20zr2V+9VsrXJQ2g==",
    "requires": {
      "browserslist": "^4.7.0",
      "caniuse-lite": "^1.0.30000999",
      "chalk": "^2.4.2",
      "normalize-range": "^0.1.2",
      "num2fraction": "^1.2.2",
      "postcss": "^7.0.18",
      "postcss-value-parser": "^4.0.2"
    },

...

}

1

Ich bin mir nicht ganz sicher, wo mein Problem lag, aber ich glaube, es lag daran, dass ich dieselben globalen Pakete von npm und Yarn verwendet habe.

Ich habe alle globalen npm-Pakete deinstalliert. Bei erneuter Verwendung von Garnbefehlen war das Problem behoben.

So sehen Sie installierte globale Pakete ...

für npm:

npm ls -g --depth=0

für Garn:

yarn global list

Ich habe dann jedes Paket, das ich in der npm-Liste gesehen habe, deinstalliert und dabei Folgendes verwendet:

npm uninstall -g <package-name>

0

Auf dem Mac habe ich node_modules und package-lock.json gelöscht, dann npm install ausgeführt und mein Problem behoben.


0

Viele raten Ihnen, das package-lock.jsonoder das zu entfernen yarn.lock. Das ist eindeutig eine schlechte Idee!

Ich verwende Yarn und konnte dieses Problem beheben, indem ich nur die Einträge caniuse-dbund caniuse-litein meinem entfernte yarn.lockund a yarn.

Es ist nicht erforderlich, die Hauptfunktion der Sperrdatei durch Löschen zu unterbrechen.


-1

Ich habe die Knotenversion von 12 auf 10 herabgestuft

BEARBEITEN

Dieser Fehler trat bei mir auf, weil ich Knotenversion 12 verwendet habe. Beim Downgrade auf Version 10.16.5 wird dieser Fehler beendet. Dieser Fehler ist in meiner lokalen Umgebung aufgetreten, aber bei Prod und Staging tritt er nicht auf. In der Prod- und Staging-Node-Version ist 10.x, also mache ich das einfach und musste kein Paket in meiner package.json aktualisieren


2
Willkommen bei SO! Wenn Sie eine Antwort posten, versuchen Sie es ein wenig zu erklären, auch wenn es richtig ist.
David García Bodego

Es ist keine schlechte Antwort ... bearbeiten Sie es einfach ein wenig und fertig.
David García Bodego

-1

Um das Problem zu beheben, können Sie den folgenden Befehl eingeben:

'npm -g update'


-1

Wenn Sie Garn verwenden:

yarn upgrade

Hilfe für mich


-1

Minimale Lösung, die für mich für das aktuelle Projekt funktioniert hat

  • Ein Create-React-App-Projekt
  • Ubuntu / * nix
  • 2020
  • Knoten 14.7

node_modules/browserslistVerzeichnis im Projekt löschen

jetzt

npm run build

generiert diese Nachricht nicht mehr


Wenn Sie nur das Verzeichnis gelöscht, geschieht , was als nächstes Mal , wenn Sie npm install/ npm ci?
Jonrsharpe

Eigentlich bin ich dann auf ein Problem mit CSS Perfix gestoßen, schließlich habe ich die Create-Create-App für dieses Projekt aktualisiert und alles war gut.
Michael Durrant

-3

In meinem Fall funktioniert das gut ...

sudo npm i -g browserslist caniuse-lite


2
Es wird dringend nicht zu verwenden , geraten sudomit , npm install -gda diese Berechtigungsprobleme verursachen kann. Wenn Sie Module nicht global installieren können, wird dies tatsächlich durch bereits vorhandene Berechtigungsprobleme verursacht. Eine SO-Suche hilft bei der Lösung.
Brady Dowling
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.