Vai al contenuto principale

@babel/compat-data

Traduzione Beta Non Ufficiale

Questa pagina è stata tradotta da PageTurner AI (beta). Non ufficialmente approvata dal progetto. Hai trovato un errore? Segnala problema →

Questo pacchetto fornisce dati di compatibilità per varie funzionalità JavaScript su diversi browser e ambienti runtime. Viene utilizzato internamente da @babel/preset-env per determinare i plugin Babel necessari per un determinato set di target di compilazione. I dati di compatibilità sono estratti dal progetto compat-table.

Installazione

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

Utilizzo

Plugin

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

pluginsCompatData è un oggetto che utilizza come chiave il nome abbreviato del plugin Babel e come valore una voce dei dati di compatibilità. Ogni voce è un oggetto con il nome del browser come chiave e la versione minima supportata come valore.

Ad esempio, pluginsCompatData["transform-object-rest-spread"] restituirà un oggetto:

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"
}

Qui, la versione minima di Chrome che supporta object-rest-spread è 60. Di conseguenza, @babel/preset-env abiliterà la trasformazione object-rest-spread solo se si sta compilando per versioni di Chrome precedenti alla 60, e analogamente per altri browser. Consulta il sorgente per i nomi abbreviati dei plugin Babel supportati.

Se vuoi verificare se object-rest-spread è supportato per determinati targets, non devi confrontare manualmente i dati di compatibilità. Puoi invece utilizzare l'utility isRequired da @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()
);
};