@babel/compat-data
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
- Yarn
- pnpm
- Bun
npm install --save-dev @babel/compat-data
yarn add --dev @babel/compat-data
pnpm add --save-dev @babel/compat-data
bun add --dev @babel/compat-data
Utilizzo
Plugin
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:
{
"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:
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()
);
};