@babel/plugin-transform-react-inline-elements
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 →
Remarque
Lorsqu'il est utilisé avec @babel/plugin-transform-runtime, les polyfills (incluant par défaut Symbol) sont délimités spécifiquement pour ne pas polluer la portée globale. Cela interrompt le fonctionnement avec React, qui n'aura pas accès à ce polyfill, entraînant des échecs de votre application dans les navigateurs hérités.
Même si ['@babel/plugin-transform-runtime', { helpers: true, polyfill: false }] est spécifié, cela peut quand même échouer, car les helpers sont précompilés.
Dans ce cas, nous recommandons d'importer/requérir @babel/polyfill au point d'entrée de votre application et d'utiliser @babel/preset-env avec l'option useBuiltIns pour n'inclure que les polyfills nécessaires à vos cibles. Alternativement, vous pouvez aussi importer/requérir core-js/modules/es6.symbol seul.
Cette transformation ne devrait être activée qu'en production (par exemple, juste avant la minification de votre code) car, bien qu'elle améliore les performances d'exécution, elle rend les messages d'avertissement plus cryptiques et ignore des vérifications importantes du mode développement, notamment les propTypes.
Exemple
Entrée
<Baz foo="bar" key="1" />
Sortie
babelHelpers.jsx(
Baz,
{
foo: "bar",
},
"1"
);
/**
* Instead of
*
* React.createElement(Baz, {
* foo: "bar",
* key: "1",
* });
*/
Deopt
// The plugin will still use React.createElement when `ref` or `object rest spread` is used
<Foo ref="bar" />
<Foo {...bar} />
Installation
- npm
- Yarn
- pnpm
- Bun
npm install --save-dev @babel/plugin-transform-react-inline-elements
yarn add --dev @babel/plugin-transform-react-inline-elements
pnpm add --save-dev @babel/plugin-transform-react-inline-elements
bun add --dev @babel/plugin-transform-react-inline-elements
Utilisation
Avec un fichier de configuration (Recommandé)
{
"plugins": ["@babel/plugin-transform-react-inline-elements"]
}
Via CLI
babel --plugins @babel/plugin-transform-react-inline-elements script.js
Via l'API Node
require("@babel/core").transformSync("code", {
plugins: ["@babel/plugin-transform-react-inline-elements"],
});