@babel/compat-data
Cette page a été traduite par PageTurner AI (bêta). Non approuvée officiellement par le projet. Vous avez trouvé une erreur ? Signaler un problème →
Ce package fournit des données de compatibilité pour diverses fonctionnalités JavaScript dans différents navigateurs et environnements d'exécution. Il est utilisé en interne par @babel/preset-env pour déterminer les plugins Babel requis pour un ensemble donné de cibles de compilation. Les données de compatibilité sont extraites du projet compat-table.
Installation
- 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
Utilisation
plugins
import _plugins from "@babel/compat-data/plugins";
const pluginsCompatData = _plugins.default;
pluginsCompatData est un objet où chaque clé correspond au nom court d'un plugin Babel et chaque valeur est une entrée de données de compatibilité. Chaque entrée est un objet avec un nom de navigateur comme clé et la version minimale prise en charge comme valeur.
Par exemple, pluginsCompatData["transform-object-rest-spread"] retournera un objet :
{
"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"
}
Ici, la version minimale de Chrome prenant en charge object-rest-spread est 60. Par conséquent, @babel/preset-env n'activera la transformation object-rest-spread que si les utilisateurs ciblent des versions de Chrome antérieures à 60, et de même pour les autres navigateurs. Consultez les sources pour connaître les noms courts des plugins Babel pris en charge.
Si vous souhaitez savoir si object-rest-spread est pris en charge pour des targets données, vous n'avez pas besoin de comparer manuellement avec l'entrée de compatibilité. Utilisez plutôt l'utilitaire isRequired de @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()
);
};