Node.js : comment corriger l'erreur Browserslist: caniuse-lite is outdated. Please run next command npm update ?
Le site "caniuse.com" est un site populaire pour les développeurs, intégrateurs et graphistes travaillant avec les langages web. Ce site indique les compatibilités des différentes normes web avec les navigateurs, ce qui permet d'adapter son code à la majorité des internautes, en fonction des logiciels qu'ils utilisent. Les préprocesseurs CSS, comme SASS, s'en servent pour convertir les directives CSS afin qu'elles soient interprétées par le plus grand nombre de navigateurs. Un module a été développé pour les serveurs Node.js afin que les autres modules puissent l'utiliser. Ce paquet génère par moments un message d'erreur "Browserslist: caniuse-lite is outdated. Please run next command npm update". Si la commande indiquée pour résoudre le problème ne fonctionne pas, alors la procédure dépend des outils que vous utilisez.
Si vous utilisez l'environnement de développement Visual Studio avec l'extension Web Compiler, ce bug est connu. En attendant sa résolution par le créateur de l'extension, il existe une solution de contournement. Fermez le logiciel et rendez-vous dans le dossier "C:\Users\<votre-utilisateur>\AppData\Local\Temp\WebCompilerX.X.X", en mettant votre nom d'utilisateur ainsi que la version de l'extension installée sur votre ordinateur. Allez ensuite dans le dossier "node_modules" et supprimez les dossiers "caniuse-lite" et "browserslist". Ouvrez une invite de commande dans le dossier "WebCompilerX.X.X" et utilisez la commande suivante pour réinstaller proprement ces modules :
npm i caniuse-lite browserslist
Si vous travaillez avec Visual Studio Code, il existe une commande à utiliser dans votre projet qui va vous permettre de résoudre le problème. Elle met à jour le plugin "browserslist" dans sa dernière version, et la base de données en intégrant les dernières données du module "caniuse".
npx browserslist@latest --update-db
Si vous développez un site avec le framework Angular, celui-ci avait également ce bug mais il a été corrigé. Il suffit de mettre à jour le framework pour corriger le problème.
ng update