TLDR: (może wydawać się sprzeczne z intuicją bez wyjaśnienia)
npm install caniuse-lite browserslist
npm uninstall caniuse-lite browserslist
Wyjaśnienie:
To ostrzeżenie msg („canisuse-lite jest nieaktualne, proszę ....”) jest wysyłane przez skrypty na liście przeglądarek podczas kompilacji / uruchamiania, jeśli stwierdzi, że zainstalowana wersja caniuse-lite jest starsza niż 2 wersje z bieżącej wersji. Jeśli nic w twoim projekcie się nie zmieniło i nagle zobaczysz ten komunikat podczas uruchamiania lub budowania projektu, prawdopodobnie oznacza to, że była ostatnia aktualizacja wersji caniuse-lite.
Niestety, wiadomość tekstowa wyświetlana na liście przeglądarek jest pomocna tylko wtedy, gdy zainstalowałeś caniuse-lite jako zależność twojego projektu. Najprawdopodobniej nie. Więc kiedy uruchomisz sugerowaną wersję „npm update caniuse-lite” lub „npm update” caniuse-lite @ latest ”(lub„ npm install ”), npm nie widzi tego pakietu na liście zależności w pakiecie.json, więc ignoruje prośba.
W jaki sposób te pakiety stały się zależnościami? Kiedy Twój projekt został utworzony (być może z aplikacją angularapp lub create-React-app lub podobną dla twojego frameworka), npm zainstalowała listę przeglądarek jako zależność od potrzebnych narzędzi, a nie jako zależność twojego projektu. W tym samym czasie caniuse-lite został zainstalowany jako zależność listy przeglądarek. Później, kiedy projekt został zaktualizowany, utworzono plik package-lock.json, który blokuje wszystkie zależności do określonej wersji.
Jeśli byłbyś w stanie zaktualizować informacje o wersji na liście zależności w package-lock.json, to uruchomienie „npm install” zaktualizowałoby te pakiety w module node_modules. Nie należy ręcznie edytować pliku package-lock.json. Zamiast tego najlepszym sposobem na to jest:
Tymczasowo uczyń te pakiety zależnymi od twojego projektu:
npm zainstaluj caniuse-lite browserslist
Oprócz aktualizacji pakietu do najnowszej wersji, aktualizuje to listę zależności zarówno w pliku package.json, jak i (co najważniejsze) pakiet-lock.json.
Usuń te pakiety jako bezpośrednie zależności projektu:
odinstaluj npm caniuse-lite browserslist
Ponieważ te pakiety są używane przez inne zależności, nie są usuwane z modułów node_modules. Aktualizowany jest tylko pakiet.json, aby usunąć je jako zależność projektu.
Zatwierdź pakiet-lock.json. Każdy inny użytkownik może teraz uruchomić „npm install”, aby pobrać zaktualizowane dwa pakiety z listy zależności zależnych w pliku package-lock.json i zatrzymać komunikat ostrzegawczy.
npm update caniuse-lite browserslist
?