{"id":234264,"date":"2023-02-24T18:18:00","date_gmt":"2023-02-24T15:18:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=234264"},"modified":"2022-11-12T02:48:05","modified_gmt":"2022-11-11T23:48:05","slug":"guide-complet-sur-la-configuration-dun-environnement-de-developpement-pour-gutenberg","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fr\/guide-complet-sur-la-configuration-dun-environnement-de-developpement-pour-gutenberg\/","title":{"rendered":"Guide complet sur la configuration d&rsquo;un environnement de d\u00e9veloppement pour Gutenberg"},"content":{"rendered":"\n<p>Ce guide est destin\u00e9 \u00e0 ceux qui souhaitent \u00e9crire du code pour Gutenberg avec les syntaxes ES6, ESNext et JSX, et qui doivent configurer webpack et babel pour les transformer en fichiers utilisables dans l&rsquo;\u00e9diteur Gutenberg. Nous examinerons ce que vous devez faire, pourquoi et comment nous pouvons utiliser et \u00e9tendre les valeurs par d\u00e9faut de WordPress et les personnaliser en fonction de nos besoins.<\/p>\n<p>Si vous \u00eates tout nouveau dans l&rsquo;ensemble des concepts npm, webpcak et Babel, vous devriez lire la section suivante qui vise \u00e0 expliquer les bases du fonctionnement de ces outils et comment vous les utilisez. Cependant, si vous l&rsquo;avez d\u00e9j\u00e0 fait et que vous connaissez le processus, peut-\u00eatre en d\u00e9veloppant avec React, passez \u00e0 la section suivante o\u00f9 nous allons r\u00e9ellement configurer les choses.<\/p>\n<h2>Pour les d\u00e9butants: npm, webpack et babel<\/h2>\n<p>Si vous ne savez pas pourquoi nous devons faire tout cela pour \u00e9crire Javascript pour Gutenberg, je vous recommande de <a href=\"https:\/\/awhitepixel.com\/blog\/the-basics-of-developing-for-wordpress-gutenberg\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">lire mon article<\/a> qui explore les bases du d\u00e9veloppement pour Gutenberg &#8211; o\u00f9 j&rsquo;explique la diff\u00e9rence entre les versions de Javascript et pourquoi cela en vaut la peine.<\/p>\n<p>Si vous ne l&rsquo;avez jamais fait auparavant, vous devrez d&rsquo;abord installer <a href=\"https:\/\/nodejs.org\/en\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Node.js<\/a> sur votre ordinateur. Cliquez sur le lien, t\u00e9l\u00e9chargez-le et installez-le. Inclus dans Node.js, vous obtiendrez un outil que nous utiliserons pour configurer la majeure partie de la configuration. Cet outil est <code>npm<\/code>, qui vous permet d&rsquo;installer des biblioth\u00e8ques Javascript et d&rsquo;ex\u00e9cuter des scripts via la ligne de commande\/le terminal. Vous pouvez \u00e9galement utiliser <code>yarn<\/code>si vous le pr\u00e9f\u00e9rez, mais pour ce guide, nous utiliserons <code>npm<\/code>.<\/p>\n<h3>npm<\/h3>\n<p>Ce guide n&rsquo;entrera pas dans les d\u00e9tails de toutes les choses que vous pouvez faire avec <code>npm<\/code>, mais il en expliquera le concept de base et les \u00e9l\u00e9ments pertinents pour nos besoins. Nous allons utiliser <code>npm<\/code>pour deux choses\u00a0; pour installer les biblioth\u00e8ques requises dans notre projet et pour ex\u00e9cuter des commandes pour cr\u00e9er (compiler) nos fichiers Javascript.<\/p>\n<p>Avec <code>npm<\/code>, vous pouvez installer n&rsquo;importe quel package Javascript open source public. Si nous devions d\u00e9velopper avec React (en dehors de WordPress), nous aurions besoin d&rsquo;installer des biblioth\u00e8ques React et des biblioth\u00e8ques Webpack. WordPress propose toute une gamme de biblioth\u00e8ques (principalement pour Gutenberg) que vous pouvez installer, mais nous ne sommes vraiment int\u00e9ress\u00e9s que par une: <code>@wordpress\/scripts<\/code>\u2013 qui nous aide \u00e0 simplifier notre configuration.<\/p>\n<p>Chaque fois que vous installez une biblioth\u00e8que, <code>npm<\/code>cr\u00e9era un sous-dossier &quot; <code>node_modules<\/code>&quot; o\u00f9 les biblioth\u00e8ques install\u00e9es sont stock\u00e9es. Vous n&rsquo;aurez jamais besoin d&rsquo;entrer dans ce dossier ou de modifier quoi que ce soit ici, mais gardez \u00e0 l&rsquo;esprit que ce dossier contiendra facilement (litt\u00e9ralement\u00a0!) Des dizaines de milliers de fichiers. Il s&rsquo;agit d&rsquo;un dossier que vous ne devriez jamais engager dans git ou inclure dans un th\u00e8me ou un plugin fini. Les biblioth\u00e8ques ne sont n\u00e9cessaires que lors du d\u00e9veloppement.<\/p>\n<p>Lorsque votre environnement est configur\u00e9, vous pouvez utiliser <code>npm<\/code>pour ex\u00e9cuter des scripts d\u00e9finis dans votre <code>package.json<\/code>fichier. Selon le projet, vous auriez normalement au moins deux scripts ; un pour construire les scripts et un pour d\u00e9marrer le &quot;mode montre&quot;. En &quot;mode montre&quot;, <code>npm<\/code>d\u00e9marre un processus dans le terminal qui attend et \u00e9coute les modifications apport\u00e9es \u00e0 n&rsquo;importe quel fichier, et les compile au moment de l&rsquo;ex\u00e9cution chaque fois que vous cliquez sur Enregistrer. Vous connaissez peut-\u00eatre ce concept si vous avez d\u00e9j\u00e0 utilis\u00e9 des programmes de compilation SCSS ou LESS. Il est beaucoup plus efficace d&rsquo;ex\u00e9cuter un script &quot;watch&quot; en arri\u00e8re-plan qui se recompile \u00e0 chaque fois que vous enregistrez, au lieu d&rsquo;aller au terminal et d&rsquo;ex\u00e9cuter la commande build apr\u00e8s chaque modification.<\/p>\n<h3>webpack et babel<\/h3>\n<p>Vous pouvez d\u00e9velopper en d\u00e9veloppant pour Gutenberg sans faire de configuration webpack ou babel. Parce que nous utilisons les biblioth\u00e8ques de WordPress, ils s&rsquo;en chargeront pour nous. Cependant, cela pr\u00e9sente un inconv\u00e9nient &#8211; il utilise par d\u00e9faut un emplacement et un nom de fichier fixes pour vos fichiers source et de sortie. L&rsquo;ensemble de votre d\u00e9veloppement Javascript doit \u00eatre \u00e9crit dans un seul fichier, dans <code>project-folder\/src\/index.js<\/code>, et la construction finira toujours dans <code>project-folder\/build\/index.js<\/code>. Si cela vous convient, vous pouvez ignorer toute la partie sur la configuration du webpack. Cependant, si vous d\u00e9veloppez un th\u00e8me ou un plug-in avec plusieurs fonctionnalit\u00e9s de Gutenberg (blocs personnalis\u00e9s, filtres, etc.), vous souhaiterez peut-\u00eatre au moins un nom de fichier et un emplacement de sortie diff\u00e9rents, ainsi que l&rsquo;autorisation de plusieurs fichiers.<\/p>\n<p>Si vous utilisez le package WordPress pour g\u00e9rer la configuration (<code>@wordpress\/scripts<\/code>), Babel est d\u00e9j\u00e0 configur\u00e9. Mais vous devez savoir que le package de WordPress peut ne pas inclure les plugins que vous souhaitez utiliser. Il y a par exemple un package qui vous permet d&rsquo;utiliser les nouvelles \u00abfonctions fl\u00e9ch\u00e9es\u00bb (<code>myFunction = (param) =&gt; { }<\/code>), pour d\u00e9finir des fonctions sans avoir besoin de lier <code>this<\/code>. Si vous voulez absolument utiliser ces fonctionnalit\u00e9s ESNext, vous devrez configurer Babel vous-m\u00eame au lieu d&rsquo;utiliser les param\u00e8tres par d\u00e9faut de WordPress. Je vais expliquer comment ci-dessous.<\/p>\n<h3>Le processus<\/h3>\n<p>Le processus de d\u00e9veloppement avec Webpack une fois que tout est configur\u00e9 et install\u00e9, consiste \u00e0 acc\u00e9der \u00e0 votre dossier de projet dans le terminal et \u00e0 d\u00e9marrer le script &quot;watch&quot;. Il restera ouvert et \u00e9coutera les modifications apport\u00e9es \u00e0 vos fichiers JS. Chaque fois que vous appuyez sur Enregistrer dans vos fichiers Javascript, le terminal affichera (esp\u00e9rons-le) des informations indiquant qu&rsquo;il a recompil\u00e9 le fichier avec succ\u00e8s. S&rsquo;il y a eu des erreurs de compilation, elles appara\u00eetront dans le terminal. Pour arr\u00eater le processus de &quot;montre&quot;, appuyez sur CTRL + C.<\/p>\n<h2>Mise en place de l&rsquo;environnement<\/h2>\n<p>Je suppose que vous avez d\u00e9j\u00e0 un WordPress local en cours d&rsquo;ex\u00e9cution sur une pile LAMP (des programmes tels que WampServer, XAMPP, Docker ou similaire), et que vous avez soit un plugin ou un th\u00e8me pr\u00eat \u00e0 commencer \u00e0 coder votre Javascript.<\/p>\n<p>Je recommande de cr\u00e9er un sous-dossier d\u00e9di\u00e9 \u00e0 votre d\u00e9veloppement Javascript car vous pourriez vous retrouver avec plusieurs fichiers et dossiers de configuration. Cela facilite la s\u00e9paration des fichiers et des dossiers (par exemple <code>node_modules\/<\/code>) que vous ne souhaitez pas inclure dans les commits git ou les versions finales. Mais il est parfaitement possible d&rsquo;utiliser votre th\u00e8me principal ou votre dossier de plug-in comme dossier de projet pour le d\u00e9veloppement Javascript.<\/p>\n<p>Dans le terminal (terminal Mac OS ou invite de commande Windows, les deux fonctionnent correctement), acc\u00e9dez au dossier de votre projet. En ce qui concerne ce didacticiel, je suppose que nous sommes dans un th\u00e8me et que nous avons cr\u00e9\u00e9 un sous-dossier vide comme dossier <code>gutenberg-dev\/<\/code>de projet.<\/p>\n<p>La premi\u00e8re \u00e9tape consiste \u00e0 initialiser un projet npm &#8211; qui consiste essentiellement <code>npm<\/code>\u00e0 g\u00e9n\u00e9rer un <code>package.json<\/code>fichier. Ce <code>package.json<\/code>fichier informe <code>npm<\/code>sur les packages requis et les scripts disponibles pour l&rsquo;ex\u00e9cution. Tapez ceci dans le terminal\u00a0;<\/p>\n<pre><code>npm init -y<\/code><\/pre>\n<p>Cela g\u00e9n\u00e8re un <code>package.json<\/code>fichier avec un contenu par d\u00e9faut dans votre dossier de projet.<\/p>\n<p>Ensuite, nous installerons le package WordPress qui nous aidera \u00e0 r\u00e9duire la quantit\u00e9 de configuration que nous aurons \u00e0 faire. Ex\u00e9cutez cette commande\u00a0:<\/p>\n<pre><code>npm install --save-dev --save-exact @wordpress\/scripts<\/code><\/pre>\n<p>La balise <code>--save-dev<\/code>informe <code>npm<\/code>que les biblioth\u00e8ques donn\u00e9es ne sont n\u00e9cessaires qu&rsquo;au d\u00e9veloppement et <code>--save-exact<\/code>s&rsquo;assure <code>npm<\/code>qu&rsquo;une seule version est install\u00e9e, la plus r\u00e9cente.<\/p>\n<p>Ouvrez le <code>package.json<\/code>fichier dans votre \u00e9diteur. (<code>npm<\/code>aura \u00e9galement g\u00e9n\u00e9r\u00e9 un <code>package-lock.json<\/code>lors de l&rsquo;installation des packages, vous pouvez simplement ignorer ce fichier, c&rsquo;est dans celui-ci <code>package.json<\/code>que vous apporterez des modifications). Il devrait \u00eatre rempli avec la configuration par d\u00e9faut, et vous remarquerez peut-\u00eatre que l&rsquo;installation du package que nous avons effectu\u00e9e pr\u00e9c\u00e9demment a ajout\u00e9 une entr\u00e9e d&rsquo; <code>@wordpress\/scripts<\/code>une certaine version dans <code>devDependencies<\/code>. Au fur et \u00e0 mesure que vous installerez plus de packages, <code>npm<\/code>mettra \u00e0 jour <code>package.json<\/code>avec des entr\u00e9es pour chaque package. Tout ce dont nous devons nous pr\u00e9occuper dans ce fichier est la <code>scripts<\/code>propri\u00e9t\u00e9, qui concerne les scripts (commandes) que vous pouvez utiliser <code>npm<\/code>pour ex\u00e9cuter. Mettez \u00e0 jour la propri\u00e9t\u00e9 scripts dans celle-ci (vous pouvez supprimer le &quot;test&quot; par d\u00e9faut)\u00a0:<\/p>\n<pre><code>\"scripts\": {\n    \"build\": \"wp-scripts build\",\n    \"start\": \"wp-scripts start\"\n},<\/code><\/pre>\n<p>Ce morceau de code indique <code>npm<\/code>que nous avons deux scripts que nous pouvons ex\u00e9cuter dans ce dossier de projet\u00a0; &quot;construire&quot; et &quot;d\u00e9marrer&quot;. Nous ex\u00e9cutons un script avec la commande <code>npm run &lt;scriptname&gt;<\/code>, dans laquelle <code>npm<\/code>recherchera <code>package.json<\/code>et ex\u00e9cutera la commande d\u00e9finie comme sa valeur. Nous utilisons l&rsquo;outil <code>wp-scripts<\/code>fourni dans le package que nous venons d&rsquo;installer pour compiler notre Javascript une fois (<code>\"build\"<\/code>) ou d\u00e9marrer le mode &quot;regarder&quot; \/ &quot;\u00e9couter&quot; pour compiler chaque fois que nous enregistrons les modifications (<code>\"start\"<\/code>).<\/p>\n<p>Cela nous permet \u00e9galement d&rsquo;utiliser le webpack de WordPress et la configuration Babel, nous n&rsquo;avons donc pas \u00e0 le faire nous-m\u00eames.<\/p>\n<p>Dans votre dossier de projet, cr\u00e9ez un sous-dossier appel\u00e9 <code>src\/<\/code>. Dans ce dossier, cr\u00e9ez un <code>index.js<\/code>fichier.<\/p>\n<p>Si vous \u00eates d&rsquo;accord avec les valeurs par d\u00e9faut du webpack, vous avez maintenant termin\u00e9\u00a0! \u00c9crivez votre code ES6 et JSX dans <code>index.js<\/code>, et dites <code>npm<\/code>de les compiler en ex\u00e9cutant la commande build :<\/p>\n<pre><code>npm run build<\/code><\/pre>\n<p>ou d\u00e9marrez un processus &quot;watch&quot; dans le terminal qui \u00e9coute les modifications apport\u00e9es avec cette commande (utilisez CTRL + C pour arr\u00eater le processus de surveillance):<\/p>\n<pre><code>npm run start<\/code><\/pre>\n<p>L&rsquo;ex\u00e9cution de l&rsquo;un de ces \u00e9l\u00e9ments g\u00e9n\u00e9rera directement un sous- <code>build\/<\/code>dossier dans votre projet avec le r\u00e9sultat compil\u00e9 dans <code>build\/index.js<\/code>.<\/p>\n<p><strong>C&rsquo;est tout pour la configuration de l&rsquo;environnement la plus basique\u00a0! Vous \u00eates maintenant pr\u00eat \u00e0 \u00e9crire du Javascript ES6 pour Gutenberg !<\/strong><\/p>\n<p>Si vous souhaitez modifier l&#8217;emplacement et les noms de fichiers de vos fichiers source ou de sortie, lisez la suite.<\/p>\n<h3>Configuration des noms et chemins des fichiers source et de sortie<\/h3>\n<p>Si, comme moi, vous n&rsquo;\u00eates pas satisfait du nom de fichier et de la structure par d\u00e9faut, en particulier pour le ou les fichiers de sortie, vous devez envisager de configurer Webpack. Normalement, par exemple si vous d\u00e9veloppiez pour React en dehors de WordPress, vous auriez besoin de mettre en place une configuration compl\u00e8te de webpack avec le plugin Babel. Heureusement, WordPress s&rsquo;en charge pour nous et nous permet d&rsquo;\u00e9tendre la propre configuration du pack Web de WordPress et d&rsquo;ajuster uniquement les parties que nous voulons modifier.<\/p>\n<p>Dans votre dossier de projet (m\u00eame dossier que <code>package.json<\/code>) cr\u00e9ez un fichier nomm\u00e9 <code>webpack.config.js<\/code>et ouvrez-le dans votre \u00e9diteur. \u00c9crivez ce qui suit dans ce fichier\u00a0:<\/p>\n<pre><code>const defaultConfig = require(\"@wordpress\/scripts\/config\/webpack.config\");\nconst path = require('path');\nmodule.exports = {\n    ...defaultConfig,\n    entry: {\n        'block-mynamespace-myblock': '.\/src\/block-mynamespace-myblock.js'\n    },\n    output: {\n        path: path.join(__dirname, '..\/assets\/js\/gutenberg'),\n        filename: '[name].js'\n    }\n}<\/code><\/pre>\n<p>La premi\u00e8re chose que nous faisons est <code>@wordpress\/scripts<\/code>de r\u00e9cup\u00e9rer la configuration du webpack dans la variable <code>defaultConfig<\/code>. Dans la configuration du webpack <code>module.exports<\/code>, la premi\u00e8re chose que nous faisons est d&rsquo;appliquer tout en <code>defaultConfig<\/code>utilisant l&rsquo;op\u00e9rateur de propagation (<code>...<\/code>). Ces deux parties garantissent que nous \u00e9tendons la configuration du pack Web de WordPress en incluant tout ce qu&rsquo;il contient. Apr\u00e8s l&rsquo;op\u00e9rateur de propagation, nous pouvons ajuster ou ajouter toute propri\u00e9t\u00e9 que nous souhaitons modifier\u00a0; dans notre cas, l&#8217;emplacement source et l&#8217;emplacement de sortie.<\/p>\n<p>La <code>entry<\/code>propri\u00e9t\u00e9 d\u00e9finit les fichiers source, qui est par d\u00e9faut <code>.\/src\/index.js<\/code>. Chaque entr\u00e9e dans <code>entry<\/code>la propri\u00e9t\u00e9 est une paire cl\u00e9 + valeur \u00e0 partir de laquelle Webpack compilera (et surveillera). Dans l&rsquo;exemple ci-dessus, j&rsquo;ai d\u00e9fini &lsquo; <code>block-mynamespace-myblock<\/code>&lsquo; situ\u00e9 dans <code>src\/block-mynamespace-myblock.js<\/code>comme un point d&rsquo;entr\u00e9e. Vous pouvez ajouter autant de paires cl\u00e9 + valeur ici pour chaque fichier source que vous souhaitez compiler.<\/p>\n<p>La <code>output<\/code>propri\u00e9t\u00e9 d\u00e9cide de l&#8217;emplacement des fichiers compil\u00e9s. Dans <code>path<\/code>vous d\u00e9finissez le dossier de destination pour tous les fichiers compil\u00e9s. J&rsquo;utilise un assistant de chemin pour pouvoir naviguer correctement dans les r\u00e9pertoires de ma configuration. Dans l&rsquo;exemple ci-dessus, je dis \u00e0 webpack que tous les fichiers compil\u00e9s doivent se retrouver dans mon <code>theme-folder\/assets\/js\/gutenberg\/<\/code>dossier. L&rsquo;important est d&rsquo;utiliser <code>..\/<\/code>pour remonter dans l&rsquo;arborescence des r\u00e9pertoires, hors du dossier du projet et dans un autre dossier o\u00f9 je veux que tous les fichiers Javascript de mon th\u00e8me soient. Ajustez le chemin pour l&rsquo;adapter \u00e0 la structure de votre projet.<\/p>\n<p>Deuxi\u00e8mement, je dis \u00e0 webpack que tous les noms de fichiers doivent \u00eatre nomm\u00e9s comme leurs <code>entry<\/code>noms de cl\u00e9 correspondants. Cette configuration Webpack compilera mon <code>theme-folder\/gutenberg-dev\/src\/block-mynamespace-myblock.js<\/code>fichier <code>theme-folder\/assets\/js\/gutenberg\/block-mynamespace-myblock.js<\/code>. Si je devais ajouter un autre fichier source en tant que paire cl\u00e9 + valeur dans <code>entry<\/code>, il serait compil\u00e9 dans le m\u00eame dossier avec la cl\u00e9 comme nom de fichier.<\/p>\n<p>Effectuez les ajustements souhait\u00e9s dans votre <code>webpack.config.js<\/code>fichier et enregistrez. R\u00e9ex\u00e9cutez l&rsquo;une des <code>npm<\/code>commandes de construction pour g\u00e9n\u00e9rer des fichiers dans leurs nouveaux emplacements.<\/p>\n<p><strong>C&rsquo;est \u00e7a! Vous avez maintenant \u00e9tendu la configuration webpack de WordPress et vous contr\u00f4lez maintenant o\u00f9 vos fichiers source et vos fichiers de sortie doivent aller.<\/strong><\/p>\n<p>Cependant, je souhaite inclure un dernier conseil dans ce guide. La configuration par d\u00e9faut de WordPress pour Babel peut manquer de certains plugins Babel pour certaines nouvelles fonctionnalit\u00e9s dans ESNext. Par exemple, avec la valeur par d\u00e9faut ci-dessus et les valeurs par d\u00e9faut de WordPress, vous ne pourrez pas utiliser les fonctions fl\u00e9ch\u00e9es dans votre code. Si cela vous int\u00e9resse, lisez la suite.<\/p>\n<h3>Ajout de la prise en charge des nouvelles syntaxes ESNext avec Babel<\/h3>\n<p>Au moment de la r\u00e9daction de cette configuration Babel par d\u00e9faut de WordPress, il manque la prise en charge des \u00absyntaxes exp\u00e9rimentales\u00bb, qui incluent par exemple les fonctions fl\u00e9ch\u00e9es. Pour ajouter la prise en charge de cela, vous devez fournir votre fichier de configuration Babel, et pour l&rsquo;instant je n&rsquo;ai pas trouv\u00e9 de moyen d&rsquo;\u00e9tendre la configuration Babel de WordPress comme nous l&rsquo;avons fait avec la configuration webpack ci-dessus. Nous devons donc red\u00e9finir les pr\u00e9r\u00e9glages de Babel ainsi que l&rsquo;ajout du plugin &quot;syntaxes exp\u00e9rimentales&quot;. Mais ne vous inqui\u00e9tez pas, c&rsquo;est un tr\u00e8s petit fichier.<\/p>\n<p>La premi\u00e8re \u00e9tape consiste \u00e0 installer certains packages dont nous avons besoin pour les pr\u00e9r\u00e9glages Babel &#8211; nous devons installer les m\u00eames que ceux d\u00e9finis dans la configuration Babel de WordPress. Ex\u00e9cutez cette commande pour installer <code>@babel\/preset-env<\/code>et <code>@babel\/preset-react<\/code>, ainsi que le package qui nous int\u00e9resse ; <code>@babel\/plugin-proposal-class-properties<\/code>:<\/p>\n<pre><code>npm install --save-dev @babel\/preset-env @babel\/preset-react @babel\/plugin-proposal-class-properties<\/code><\/pre>\n<p>La deuxi\u00e8me \u00e9tape consiste \u00e0 ajouter le fichier de configuration de Babel. Dans votre dossier de projet, cr\u00e9ez un fichier nomm\u00e9 <code>.babelrc<\/code>(sans extension de fichier).<\/p>\n<p>Remarque pour Windows\u00a0: si vous \u00eates assis sur une machine Windows, vous n&rsquo;\u00eates pas autoris\u00e9 \u00e0 cr\u00e9er des fichiers sans extensions de fichier. Pour contourner cela, vous pouvez cr\u00e9er ce fichier \u00e0 l&rsquo;aide du terminal\/invite de commande. Ex\u00e9cutez cette commande\u00a0:<\/p>\n<pre><code>echo hi &gt; .babelrc<\/code><\/pre>\n<p>Cette commande affichera &quot;salut&quot; dans le fichier <code>.babelrc<\/code>du dossier actuel. Vous pouvez maintenant ouvrir ce fichier dans votre \u00e9diteur, supprimer le &quot;salut&quot; et ajouter le contenu r\u00e9el ci-dessous.<\/p>\n<p>Votre <code>.babelrc<\/code>devrait ressembler \u00e0 ceci\u00a0:<\/p>\n<pre><code>{\n    \"presets\": [\"@babel\/preset-env\", \"@babel\/preset-react\"],\n    \"plugins\": [\n        [\n            \"@babel\/plugin-proposal-class-properties\"\n        ]\n    ]\n}<\/code><\/pre>\n<p>Nous d\u00e9finissons les m\u00eames pr\u00e9r\u00e9glages que vous feriez normalement dans un projet React, et de la m\u00eame mani\u00e8re que WordPress le fait. Ce que nous ajoutons est la <code>plugins<\/code>propri\u00e9t\u00e9. \u00c0 l&rsquo;int\u00e9rieur du tableau, <code>plugins<\/code>nous ajoutons le <code>@babel\/plugin-proposal-class-properties<\/code>plug-in Babel n\u00e9cessaire pour les &quot;syntaxes exp\u00e9rimentales&quot; telles que les fonctions fl\u00e9ch\u00e9es.<\/p>\n<h2>Conclusion<\/h2>\n<p>Gardez \u00e0 l&rsquo;esprit que WordPress peut modifier sa configuration \u00e0 tout moment, cela est particuli\u00e8rement susceptible de se produire car Gutenberg est relativement nouveau. Parce que nous \u00e9tendons la configuration de WordPress, nous pourrions \u00e0 un moment donn\u00e9 avoir besoin de mettre \u00e0 jour notre configuration \u00e0 nouveau pour r\u00e9pondre \u00e0 nos besoins. Peut-\u00eatre que WordPress d\u00e9cide d&rsquo;inclure la prise en charge des syntaxes exp\u00e9rimentales afin que nous n&rsquo;ayons pas \u00e0 faire toute la configuration de Babel.<\/p>\n<p>Ce n&rsquo;est en aucun cas un guide exhaustif pour configurer Webpack et Babel, mais le r\u00e9sultat de nombreuses exp\u00e9rimentations et d\u00e9couvertes. J&rsquo;esp\u00e8re que cela vous a aid\u00e9 \u00e0 apprendre \u00e0 configurer votre propre environnement de d\u00e9veloppement Gutenberg et l&rsquo;a rendu assez facile pour que ce ne soit pas un si gros obstacle pour commencer \u00e0 apprendre ES6, ESNext, JSX et toutes ces bonnes choses b\u00e9n\u00e9fiques pour d\u00e9velopper pour Gutenberg\u00a0!<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Source d&rsquo;enregistrement:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/awhitepixel.com\" class=\"external external_icon\">awhitepixel.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Il s&rsquo;agit d&rsquo;un guide complet sur la configuration de npm, webpack et babel afin d&rsquo;\u00e9crire du code pour Gutenberg avec les syntaxes ES6, ESNext et JSX.<\/p>\n","protected":false},"author":1,"featured_media":151834,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[915,832,936,936,915,1110,811,811,832,841,841,862,862],"tags":[1167],"class_list":["post-234264","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-autre","category-guide-pour-les-debutants","category-gutenberg-3","category-n-a","category-plugins-2","category-tutoriels","category-wordpress-3","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/234264","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/comments?post=234264"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/234264\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media\/151834"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media?parent=234264"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/categories?post=234264"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/tags?post=234264"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}