Utiliser Baseline avec Browserslist

Publié le 7 mai 2025

Browserslist est l'un des outils les plus populaires pour configurer les versions minimales de navigateurs compatibles dans les bases de code côté client. Les développeurs ajoutent une requête browserslist à leur fichier package.json, et Browserslist affiche une liste des navigateurs compatibles minimum. Browserslist peut être utilisé avec un large éventail d'outils populaires de linting, de polyfilling et d'empaquetage, y compris:

Cibles de référence

Lorsque vous décidez d'utiliser la référence, vous devez tenir compte de votre base d'utilisateurs et choisir le jeu de fonctionnalités de référence que vous souhaitez cibler:

  • Étalonnage largement disponible inclut toutes les fonctionnalités Web qui étaient entièrement compatibles avec le navigateur de base de référence défini il y a 30 mois ou plus.
  • Les ensembles de fonctionnalités de l'année de référence, par exemple Référence 2020, incluent toutes les fonctionnalités qui étaient nouvelles à la fin de l'année spécifiée.

Selon votre base d'utilisateurs, vous pourrez peut-être cibler la référence "Largement disponible" ou vous devrez peut-être cibler une année de référence plus ancienne. Consultez vos outils d'analyse ou de RUM pour identifier les versions de navigateurs utilisées par vos utilisateurs.

Installez browserslist-config-baseline

Une fois que vous avez choisi le jeu de fonctionnalités de référence que vous souhaitez cibler, vous pouvez appliquer cette cible à vos outils de développement. Le moyen le plus simple d'y parvenir pour tous les outils qui utilisent browserslist consiste à installer browserslist-config-baseline:

# npm npm i browserslist-config-baseline@latest -D  # yarn yarn add --latest browserslist-config-baseline -D  # bun bun add browserslist-config-baseline@latest -d 

Cibler la référence largement disponible

Pour cibler la référence largement disponible, mettez à jour ou ajoutez une configuration browserlist dans package.json à l'aide du mot clé extends:

{   ...   "browserslist": [     "extends browserslist-config-baseline"    ]   ... } 

Lorsque browserslist charge sa liste des navigateurs compatibles, browserslist-config-baseline génère dynamiquement les versions minimales actuelles des navigateurs compatibles avec toutes les fonctionnalités désormais largement disponibles. Vous pouvez également ajouter extends browserslist-config-baseline à un fichier .browserslistrc. Il sera géré de la même manière.

Cibler des années de référence

Si vous souhaitez cibler un ensemble de caractéristiques de l'année de référence, ajoutez un / et l'année au format YYYY à la fin de votre requête browserslist:

"browserslist": "extends browserslist-config-baseline/2020" 

Spécifier des navigateurs en aval

Le navigateur de référence de base comprend Chrome, Edge, Firefox et Safari. Les autres navigateurs sont basés sur le même code Open Source que Chrome et Edge (Chromium) et devraient prendre en charge le même ensemble de fonctionnalités que la version de Chromium qu'ils implémentent.

browserslist-config-baseline utilise baseline-browser-mapping pour mettre en correspondance les versions de navigateur avec les ensembles de fonctionnalités qu'elles prennent en charge. Les mappages pour UC Browser mobile et QQ Browser mobile sont disponibles dans baseline-browser-mapping. D'autres navigateurs pourront être inclus à l'avenir.

Pour inclure ces navigateurs dans votre configuration de référence, ajoutez /with-downstream immédiatement après le nom du module dans votre configuration browserslist:

"browserslist": "extends browserslist-config-baseline/with-downstream" 

soit :

"browserslist": "extends browserslist-config-baseline/with-downstream/2020" 

Exemples d'utilisation de browserslist-config-baseline

Dans les outils de packaging

L'ajout de browserslist-config-baseline à votre dépôt peut avoir un effet immédiat. Babel est un outil de compilation populaire pour empaqueter du code JavaScript. Si vous utilisez les valeurs par défaut du package @babel/preset-env, de nombreuses API et méthodes JavaScript modernes seront remplacées par la syntaxe plus détaillée requise par les anciens navigateurs:

Session de terminal montrant que la commande npm run build a été exécutée sur un fichier JavaScript appelé test.js.  La taille du fichier de sortie est de 12 ko.

Toutefois, définir browserslist-config-baseline pour cibler la référence 2020 dans le même exemple de projet réduit considérablement la taille de sortie de ce code JavaScript, car moins de transformations de syntaxe sont requises:

Deuxième session de terminal montrant que la commande npm run build a maintenant produit un fichier de 1,5 ko lorsque babel est défini pour cibler la référence 2020.

Essayez-le vous-même à l'aide de l'exemple de code du dépôt baseline-demos de Google Chrome Labs.

Dans les outils lint

Certains linters fonctionnent déjà avec Browserslist ou peuvent être configurés pour fonctionner avec Browserslist à l'aide d'un module de compatibilité. Par exemple, stylelint peut consommer une configuration browserslist à l'aide du module stylelint-browser-compat. Définissez votre fichier stylelint.config.js pour qu'il utilise browserslist-config-baseline:

module.exports = {   plugins: ['stylelint-browser-compat'],   rules: {     'plugin/browser-compat': [       true,       {         browserslist: ['extends browserslist-config-baseline'],       },     ],   }, }; 

Stylelint signale désormais les CSS qui ne font pas partie de la référence largement disponible:

une liste d'avertissements de Stylelint mettant en évidence le code CSS qui ne fonctionne pas avec les anciens navigateurs.

Stylelint fournit également un plug-in qui vous permet de définir directement des règles de référence, mais si vous utilisez déjà browserslist pour gérer votre configuration, browserslist-config-baseline est une solution prête à l'emploi.

Contribuer à browserslist-config-baseline

Si vous souhaitez demander l'ajout d'une fonctionnalité pour browserslist-config-baseline, créez un bug ou une demande d'extraction dans le dépôt GitHub.

Si vous souhaitez contribuer à d'autres données de navigateur en aval ou signaler un problème de données, créez un problème ou une demande de tirage dans le dépôt baseline-browser-mapping.