Usa Baseline con Browserslist

Publicado: 7 de mayo de 2025, última actualización: 17 de septiembre de 2025

Browserslist es una de las herramientas más populares para configurar las versiones mínimas de los navegadores compatibles en las bases de código de frontend. Los desarrolladores agregan una consulta browserslist a su archivo package.json (o a otro punto de configuración de Browserslist, como un archivo .browserslistrc), y Browserslist expone una lista de los navegadores mínimos admitidos. Browserslist se puede usar con una amplia variedad de herramientas populares de linting, polyfilling y empaquetado, incluidas las siguientes:

Objetivos de referencia

Cuando decidas usar Baseline, debes tener en cuenta tu base de usuarios y decidir qué conjunto de funciones de Baseline quieres segmentar:

  • Baseline Widely available incluye todas las funciones web que fueron totalmente compatibles con el conjunto de navegadores principales de Baseline hace 30 meses o más.
  • Los conjuntos de funciones del año de referencia, por ejemplo, Baseline 2020, incluyen todas las funciones que estaban disponibles recientemente al final del año especificado.

Según tu base de usuarios, es posible que puedas segmentar tus anuncios para que se muestren en la versión de Baseline Ampliamente disponible o que debas segmentarlos para que se muestren en una versión de Baseline anterior. Consulta tus herramientas de análisis o de RUM para comprender qué versiones de navegadores tienen tus usuarios.

Cómo segmentar los anuncios para que se muestren en la plataforma de Baseline como disponibles recientemente o disponibles de forma general

La compatibilidad con Baseline está integrada en Browserslist a través de varias consultas diferentes. Si quieres segmentar tu público para los navegadores de Baseline Newly available, intenta especificar baseline newly available en tu configuración de Browserslist:

{
  ...
  "browserslist": [
    "baseline newly available"
   ]
  ...
}

También puedes especificar baseline widely available como una búsqueda:

{
  ...
  "browserslist": [
    "baseline widely available"
   ]
  ...
}

Cómo segmentar tus anuncios para los años de referencia

Si deseas segmentar un conjunto de atributos del año de referencia, especifica el año en una consulta, como baseline 2024 si deseas segmentar el conjunto de atributos de 2024:

"browserslist": "baseline 2024"

Puedes especificar años desde baseline 2015 hasta el año actual.

Cómo especificar navegadores descendentes

El conjunto de navegadores principales de Baseline incluye Chrome, Edge, Firefox y Safari. Otros navegadores se basan en el mismo código de fuente abierta que Chrome y Edge (Chromium) y deberían admitir el mismo conjunto de funciones que la versión de Chromium que implementen. Para incluir estos navegadores en tu configuración de Baseline, agrega with downstream después de tu consulta de Baseline. Por ejemplo, para segmentar navegadores descendentes como parte de Baseline Widely available, especifica baseline widely available with downstream:

"browserslist": "baseline widely available with downstream"

baseline newly available with downstream es otra consulta válida, al igual que agregar with downstream a los objetivos anuales:

"browserslist": "baseline 2024 with downstream"

Ejemplos de consultas de referencia en acción

En las herramientas de empaquetado

Usar las consultas de Baseline que ofrece Browserslist en tu proyecto puede tener un efecto inmediato. Babel es una herramienta de compilación popular para empaquetar JavaScript. Si usas los valores predeterminados del paquete @babel/preset-env, muchos métodos y APIs de JavaScript modernos se reemplazarán por la sintaxis más detallada que requieren los navegadores más antiguos:

Una sesión de terminal que muestra que se ejecutó el comando npm run build en un archivo de JavaScript llamado test.js.  El tamaño del archivo de salida es de 12 kilobytes.

Sin embargo, usar una consulta de baseline 2020 para segmentar el conjunto de funciones de 2020 en el mismo proyecto de ejemplo reduce drásticamente el tamaño de salida de este JavaScript, ya que se requieren menos transformaciones de sintaxis:

Una segunda sesión de terminal que muestra que el comando npm run build ahora produjo un archivo de 1.5 kilobytes cuando Babel se configuró para Baseline 2020.

Prueba esto por tu cuenta con el código de ejemplo en el repositorio baseline-demos de Google Chrome Labs.

En linters

Algunos verificadores de código ya funcionan con Browserslist o se pueden adaptar para que funcionen con él a través de un módulo de compatibilidad. Por ejemplo, stylelint puede consumir una configuración de browserslist con el módulo stylelint-browser-compat. Configura tu archivo stylelint.config.js para que use la consulta de referencia que elijas:

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

Stylelint ahora marcará el CSS que actualmente no forma parte de Baseline Widely available:

Una lista de advertencias de Stylelint que destacan el código CSS que no funciona en navegadores más antiguos.

Stylelint también proporciona un complemento que te permite establecer reglas de Baseline directamente, pero si ya usas Browserslist para controlar tu configuración, usar las consultas de Baseline integradas que ofrece Browserslist es una solución viable.