Saltar al contenido principal

@babel/compat-data

Traducción Beta No Oficial

Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →

Este paquete proporciona datos de compatibilidad para diversas características de JavaScript en diferentes entornos de navegadores y entornos de ejecución. Es utilizado internamente por @babel/preset-env para determinar los plugins de Babel requeridos para un conjunto específico de objetivos de compilación. Los datos de compatibilidad se extraen del proyecto compat-table.

Instalación

npm install --save-dev @babel/compat-data

Uso

Plugins

my-babel-plugin.js
import _plugins from "@babel/compat-data/plugins";
const pluginsCompatData = _plugins.default;

El objeto pluginsCompatData contiene nombres cortos de plugins de Babel como claves, donde cada valor es una entrada de datos de compatibilidad. Cada entrada es un objeto que usa nombres de navegadores como claves y la versión mínima soportada como valor.

Por ejemplo, pluginsCompatData["transform-object-rest-spread"] devuelve un objeto:

my-babel-plugin.js
{
"chrome": "60",
"opera": "47",
"edge": "79",
"firefox": "55",
"safari": "11.1",
"node": "8.3",
"deno": "1",
"ios": "11.3",
"samsung": "8",
"opera_mobile": "44",
"electron": "2.0"
}

Aquí, la versión mínima de Chrome que soporta object-rest-spread es 60. Por lo tanto, @babel/preset-env habilitará la transformación object-rest-spread solo si los usuarios están compilando para versiones de Chrome anteriores a 60, y de manera similar para otros navegadores. Consulta la fuente para ver los nombres cortos de plugins de Babel soportados.

Si necesitas determinar si object-rest-spread es compatible con unos targets específicos, no es necesario comparar manualmente contra la entrada de compat-data. En su lugar, puedes usar la utilidad isRequired de @babel/helper-compilation-targets:

my-babel-plugin.js
import { isRequired } from "@babel/helper-compilation-targets";

module.exports = api => {
// Check if the targets have native object-rest-spread support
const objectRestSpreadSupported = !isRequired(
"transform-object-rest-spread",
api.targets()
);
};