Lista przeglądarek: caniuse-lite jest nieaktualna. Uruchom następne polecenie `npm update caniuse-lite browserlist`


89

Ostatnio, kiedy kompiluję pliki scss, pojawia się błąd. Komunikat o błędzie mówi:

Lista przeglądarek: caniuse-lite jest nieaktualna. Uruchom następne polecenienpm update caniuse-lite browserslist

Po pierwsze, jak mówi komunikat, uruchomiłem, npm update caniuse-lite browserslistale to nie rozwiązało problemu. Usunąłem cały katalog nod-modules i ponownie zainstalowałem, a także zaktualizowałem cały folder, npm updateale żaden z nich nie rozwiązał problemu. Ponownie zainstalowałem także autoprefixer i browserlist, ale żaden z nich nie rozwiązał problemu.

Jeśli usunę

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

ode mnie compilerconfig.jsonwszystko działa dobrze, co oznacza, że ​​prawdopodobnie jest to związane z autoprefixerem. Ponadto ręcznie zmieniłem wersję pakietu na najnowszą package.jsoni ponownie zainstalowałem, ale bez powodzenia.

Odpowiedzi:


42

Wygląda na to, że używasz rozszerzenia kompilatora sieci Web programu Visual Studio. Występuje otwarty problem dotyczący tego znaleziony tutaj: https://github.com/madskristensen/WebCompiler/issues/413

Istnieje obejście tego problemu:

  1. Zamknij program Visual Studio
  2. Udaj się do C:\Users\USERNAME\AppData\Local\Temp\WebCompilerX.X.X(X to wersja WebCompiler)
  3. Usuń następujące foldery z node_modulesfolderu: caniuse-litei browserslist otwórz CMD (wewnątrz C:\Users\USERNAME\AppData\Local\Temp\WebCompilerX.X.X) i uruchom:npm i caniuse-lite browserslist

1
Zrobiłem to i nie mam już tego błędu, ale pojawił się nowy błąd: Błąd wtyczki: Nie można znaleźć modułu „autoprefixer”. Próbowałem ponownie zainstalować i zaktualizować autoprefixer, ale nadal pojawia się ten błąd.
Mehrdad Babaki

Brzmi jak inny problem. Jeśli masz link do swojego projektu w Internecie lub możesz złożyć inny projekt, w którym występuje problem, z chęcią go obejrzę.
Scott Kuhl

Wygląda na to, że kiedy próbowałem rozwiązać problem, aktualizując i ponownie instalując autoprefixer, coś się zepsuło. Na szczęście dzisiaj Web Compiler zaktualizował się i ponownie zobaczyłem ten komunikat o błędzie. Wykonałem powyższe kroki i tym razem problem został rozwiązany.
Mehrdad Babaki

Masz jakiś pomysł, gdzie ten katalog jest na komputerze Mac?
Safa Alai

35

Spróbuj tego, to rozwiązało mój problem npx browserslist@latest --update-db


1
Kontekst: Moje IDE to VS Code, a mój projekt JS obejmował tylko Parcel, Reaguj i Reaguj-dom, gdy zacząłem widzieć ten błąd. Żadna z powyższych opcji nie zadziałała. To rozwiązanie naprawiło moje.
Klay

W PhpStorm działało świetnie.
Neolot

pracował dla VueJS
JOG

To bardzo mi pomogło, dziękuję kochany 5 Stars
PacyL.js

31

Dla programistów Angular

Chociaż odpowiadam na to bardzo późno. Mam zły nawyk sprawdzania dzienników zmian każdej biblioteki, z której korzystam 😀 i podczas sprawdzania informacji o wydaniu Angular CLI doszedłem do wniosku, że wczoraj (9 stycznia 2020 r.) Wydali nową łatkę, która rozwiązuje ten problem.

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

Więc kiedy zaczniesz ng update, powinieneś otrzymać aktualizacje dla @angular/cli:

wprowadź opis obrazu tutaj

Bieganie ng update @angular/clinaprawi to ostrzeżenie.

Twoje zdrowie!


19

Znalazłem skrót, zamiast go przejść vs code appData/webCompiler, dodałem go jako zależność do mojego projektu z tym cmd npm i caniuse-lite browserslist . Ale możesz zainstalować go globalnie, aby uniknąć dodawania go do każdego projektu.

Po instalacji możesz usunąć go z projektu package.jsoni zrobić npm i.

Aktualizacja:

Na wypadek, gdyby powyższe rozwiązanie nie rozwiązało problemu. Możesz uruchomić npm update, ponieważ spowoduje to aktualizację przestarzałych / przestarzałych pakietów.

Uwaga:

Po uruchomieniu aktualizacji npm może brakować zależności. Prześledź błąd i zainstaluj brakujące zależności. Mój był nodemon, który naprawiamnpm i nodemon -g


4
Nie miałem folderu / WebCompiler w moim folderze / TEMP, jak sugerowały inne posty tutaj, więc uruchomiłem ten wiersz poleceń i wydaje się, że rozwiązałem problem.
AppDreamer

13

Kontynuacja odpowiedzi powyżej .

Wystąpił ten sam „błąd wtyczki” co @MehrdadBabaki. Odinstalowałem kompilator sieciowy, usunąłem wspomniany wyżej folder AppData WebCompiler, a następnie ponownie otworzyłem VS2019 i ponownie zainstalowałem kompilator sieciowy.

WTEDY ponownie poszedłem do folderu WebCompiler i zrobiłem npm i autoprefixer@latest npm i caniuse-lite@latestinpm i caniuse-lite browserslist@latest


po prostu zaktualizuj autoprefixer, caniuse-lite, lista przeglądarek jest dla mnie dobra
cwhsu

9

npm --depth 9999 updatenaprawiłem problem dla mnie - najwyraźniej dlatego, że package-lock.jsonnalegałem na nieaktualne wersje.


11
Nawet npm --depth 99 update caniuse-lite browserslistspowodował JavaScript heap out of memoryw moim projekcie, ale npm --depth 20 update caniuse-lite browserslistdziałał szybko i rozwiązał błąd w moim przypadku.
Alexandr Nil

5

W moim przypadku, usunięte na zewnątrz caniuse-lite, browserslistfoldery node_modules.

Następnie wpisuję następujące polecenie, aby zainstalować pakiety.

npm i -g browserslist caniuse-lite --save

działało dobrze.


1
Musieliśmy dodaćnpm i browserslist caniuse-lite --save
podstępne

3

Usuwanie node_modulesi package-lock.jsoni npm irozwiązać problem dla mnie.


1
Usunięcie pakietu package-lock.json może spowodować błąd zmian istotnych, jeśli masz długą historię instalacji pakietu, na przykład projekt, który działał i rozwijał się przez ponad rok i ma pakiety, które mają wiele zależności trzeciego poziomu przełomowe zmiany
kafinsalim

2

Jak wspomniano w odpowiedzi Scotta Kuhla, ten problem jest wspomniany na https://github.com/madskristensen/WebCompiler/issues/413

Dla mnie uruchomienie polecenia npm i caniuse-lite- browserslistdziałało tylko przez około 1/2 dnia, zanim ponownie pojawił się problem.

Znacznie lepiej sprawdza się poniższe rozwiązanie, o którym mowa w poście. Spowoduje to zaktualizowanie pliku node.js, tak aby używał console.logzamiast console.warnzwracania tych błędów.

Możesz ręcznie zaktualizować ten plik znajdujący się w C: \ Users \ [nazwa użytkownika] \ AppData \ Local \ Temp \ WebCompiler [numer wersji] \ node_modules \ browserlist

Lub, aby odbywało się to automatycznie, dodaj do pliku .csproj następujące polecenie:

  1. Kliknij prawym przyciskiem myszy plik projektu i wybierz „Zwolnij projekt”
  2. Edytuj plik .csproj
  3. Wklej następujące elementy do pliku projektu. Wkleiłem go pod koniec pliku, przed </Project>znacznikiem końcowym i przed zaimportowaniem pakietu kompilatora internetowego.
    <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. Załaduj ponownie projekt do rozwiązania.

Dziękuję Ci! To było dla mnie najlepsze rozwiązanie. Powyższe poprawki byłyby nieaktualne co drugi dzień!
Bradly Bennison

2

Rozwiązałem ten problem, wykonując krok po kroku:

  1. usunąć node_modules
  2. usunąć package-lock.json,
  3. biegać npm --depth 9999 update
  4. biegać npm install

1

Miałem też ten sam problem, to polecenie działa dla mnie

npm i autoprefixer@latest

Automatycznie dodała zależność potrzeb w package.jsoni package-lock.jsonplik jak poniżej:

package.json

"autoprefixer": "^9.6.5",

pakiet-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

Nie jestem do końca pewien, gdzie był mój problem, ale wydaje mi się, że był to spowodowane tym, że korzystałem z tych samych globalnych pakietów z npm i Yarn.

Odinstalowałem wszystkie globalne pakiety npm, a po ponownym użyciu poleceń yarn problem zniknął.

Aby zobaczyć zainstalowane pakiety globalne ...

dla npm:

npm ls -g --depth=0

dla przędzy:

yarn global list

Następnie odinstalowałem każdy pakiet, który widziałem na liście npm, używając:

npm uninstall -g <package-name>

0

Na komputerze Mac usunąłem node_modules i package-lock.json, a następnie uruchomiłem instalację npm i rozwiązałem mój problem.


-1

Zrobiłem downgrade wersji węzła z 12 do 10

EDYTOWAĆ

Ten błąd wystąpił u mnie, ponieważ korzystałem z węzła w wersji 12. Po przejściu na wersję 10.16.5 ten błąd ustaje. Ten błąd wystąpił w moim lokalnym środowisku env, ale podczas produkcji i inscenizacji tak się nie dzieje. W wersji prod i staging node jest 10.x, więc po prostu to robię i nie musiałem aktualizować żadnego pakietu w moim package.json


2
Witamy w SO! Kiedy publikujesz odpowiedź, nawet jeśli jest poprawna, spróbuj trochę wyjaśnić.
David García Bodego

To nie jest zła odpowiedź ... po prostu edytuj ją trochę i gotowe.
David García Bodego

-1

Aby rozwiązać problem, możesz wpisać poniższe polecenie:

„npm -g aktualizacja”



-1

Minimalne rozwiązanie, które działało dla mnie w obecnym projekcie

  • Projekt aplikacji „stwórz i zareaguj”
  • Ubuntu / * nix
  • 2020
  • Węzeł 14.7

usuń node_modules/browserslistkatalog w projekcie

teraz

npm run build

nie generuje już tej wiadomości


Jeśli właśnie usunąłeś katalog, co się stanie następnym razem, gdy npm install/ npm ci?
jonrsharpe

Właściwie wtedy napotkałem problem z css perfix, w końcu zaktualizowałem aplikację do tworzenia i tworzenia dla tego projektu i wszystko było dobrze.
Michael Durrant

-3

W moim przypadku to działa dobrze ...

sudo npm i -g browserslist caniuse-lite


2
Zdecydowanie odradza się używanie programu sudowith, npm install -gponieważ może to powodować problemy z uprawnieniami. Jeśli nie możesz zainstalować modułów na całym świecie, jest to rzeczywiście spowodowane już istniejącymi problemami z uprawnieniami. Wyszukiwanie SO pomoże w rozwiązaniu tego problemu.
Brady Dowling
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.