Your cart is currently empty!
Sommaire du cours
Aujourdâhui, pour faire du javascript moderne, on a besoin dâoutils en tous genres pour vĂ©rifier et compiler le code, le rendre compatible avec les navigateursâŠ
Et tout cela nĂ©cessite gĂ©nĂ©ralement pas mal dâoutils et beaucoup de configuration via Webpack et NPM.
On utilise notamment :
MĂȘme les habituĂ©s de Webpack et du dĂ©veloppement en JS passent du temps pour faire de telles configurations.
Create-block est un set dâoutils (un toolkit en anglais) qui ne nĂ©cessite aucune configuration prĂ©alable et qui va mettre en place toute la structure nĂ©cessaire au dĂ©veloppement de blocs Gutenberg avec React.
En dâautre termes, on installe le projet, on commence Ă coder, et on oublie les soucis. Et ça, ça me plait !
Je dois avouer que jâai Ă©tĂ© conquis par ce projet. Comme je le dis tout le temps je ne suis pas un grand fan de la ligne de commande. Mais pour le coup je dois avouer que tout fonctionne Ă merveille du premier coup !
Allez maintenant si vous le voulez bien, lançons-nous dans lâinstallation de create-block :
Comme on lâa vu dans les cours prĂ©cĂ©dents, nous allons avoir prĂ©alablement besoin dâinstaller NodeJS, (version 8 au minimum), le serveur Javascript qui nous permettra de lancer des commandes NPM.
Il nous faut aussi un outil de ligne de commande comme Powershell sur Windows et le terminal sur Mac. Les deux sont déjà installés avec le systÚme.
Une fois que lâon à ça, il suffit de nous rendre sur la page du projet create-block sur la documentation WordPress pour voir un peu de quoi il en retourne.
DâaprĂšs la documentation, nous nâavons rien besoin de tĂ©lĂ©charger. Il faudra simplement taper quelques lignes de commandes pour initialiser un nouveau plugin avec toute la configuration nĂ©cessaire Ă Gutenberg.
Avant toute chose, si ce nâest pas dĂ©jĂ fait, on va installer une instance de WordPress en local. Pour cela vous pouvez utiliser lâexcellent Local WP, dont un cours est dĂ©diĂ© dans la formation dĂ©velopper un thĂšme sur mesure.
Ok ! De lĂ retenez-bien le chemin de votre site, le Site Path sur Local, car on va devoir y aller en ligne de commande.
On va ouvrir notre terminal et se déplacer dans notre projet grùce à la commande cd
(pour change directory).
On va devoir se rendre directement dans le dossier des extensions de notre site fraichement installé:
cd /Sites/gutenberg/app/public/wp-content/plugins
Adaptez cette ligne en fonction dâoĂč est installĂ© votre site. Si vous nâutilisez pas Local alors vous nâaurez pas besoin de la partie /app/public/
.
Conseil
Dans le cas oĂč un dossier contient des espaces, comme Local Sites, pensez Ă les Ă©chapper avec un backslash \ (Alt + Maj + / sur Mac).
Lâautre solution serai dâouvrir le dossier plugins via votre explorateur de fichiers, faire un clic droit dessus et sĂ©lectionner : Nouveau terminal au dossier.
De lĂ on va lancer la commande dâinstallation de create-block. Cette commande va crĂ©er le dossier de lâextension, donc vous nâavez pas besoin de le faire manuellement.
SHELL
1npx @wordpress/create-block capitainewp-gut-bases
Remplacez « capitainewp-gut-bases » par le nom que vous souhaitez donner à votre extension. Notez également que npx
est une commande dérivée de npm
.
Patientez quelques secondes, le temps que les packages soient téléchargés et installés. Tout se fait automatiquement.
Une fois lâinstallation terminĂ©e, vous devriez avoir cet Ă©cran :
Vous devriez voir votre nouveau dossier dans plugins/
:
Câest parfait ! On peut maintenant lancer Webpack.
De lĂ , comme vous le suggĂšre le terminal, il vous suffit de taper :
SHELL
cd capitainewp-gut-bases
npm start
LĂ encore adaptez en fonction du nom de votre extension.
Au prochain démarrage de votre ordinateur, il ne faudra pas oublier de relancer Webpack. Pour cela vous ferez :
SHELL
cd /Sites/gutenberg/app/public/wp-content/plugins/capitainewp-gut-bases
npm start
Voici ce que devrait afficher votre terminal :
Le terminal indique quâil surveille le dossier en vue de changements et que la compilation sâest bien dĂ©roulĂ©e. Câest le signe que tout fonctionne correctement !
Le jour ou vous aurez une erreur de compilation, ou une erreur React, elle sâaffichera dans cette fenĂȘtre, en rouge.
Conseil
Vous pourriez également lancer directement cette commande depuis le terminal intégré de VSC si vous utilisez cet éditeur de code. Pour cela cliquez sur Terminal > New terminal.
Le terminal sera directement ouvert dans le bon dossier, et vous aurez tout dans une seule fenĂȘtre :
De cette maniĂšre, vous verrez immĂ©diatement lâĂ©tat de la compilation ainsi que toute erreur qui sâafficherait en rouge dans la zone infĂ©rieure.
Ok câest parfait ! Comme promis, il nây a eu aucune configuration difficile ni le besoin de traiter avec Webpack directement.
Lorsque votre extension sera prĂȘte pour la production, il faudra lancer la commande npm
run build
 afin de crĂ©er une version optimisĂ©e de lâextension.
Allez, maintenant que câest installĂ© on va rapidement jeter un oeil Ă notre extension. Voici son arborescence :
Dans build
, vous retrouvez plusieurs fichiers, qui sont le résultat de la compilation par Webpack :
index.js
est le JS compilé par Webpack qui contient tout le code de vos blocks.style-index.css
est le CSS pour le front-end, qui contient les styles de vos blocksindex.css
: le CSS pour le back-end, pour des styles supplémentairesblock.json
: qui contient la définition de votre bloc ainsi que certains paramÚtresConseil
Du cĂŽtĂ© de lâadministration WordPress, on va parfois avoir besoin de crĂ©er des styles CSS spĂ©ciaux pour les champs Ă©ditables de nos blocks ou pour surcharger un style de lâadmin. Câest pour cette raison que lâon a une feuille de style spĂ©cifique pour lâĂ©diteur.
Vous pouvez jeter un oeil au fichier index.js
compilĂ© mais vous verrez un code vraiment pas sexy : câest le code compilĂ© rĂ©trocompatible gĂ©nĂ©rĂ© par Webpack.
On retrouve également le dossier nodes_modules
. Regardez le nombre de dossiers quâil contient : ce sont toutes les dĂ©pendances nĂ©cessaires au projet (il faut savoir que certaines dĂ©pendances ont aussi leurs propres dĂ©pendances).
Câest le fichier package.json
qui est le responsable. Dâailleurs si vous lâouvrez vous ne verrez quâune dĂ©pendance Ă @wordpress/scripts
. Câest cette librairie qui appelera toutes les sous-dĂ©pendances nĂ©cessaires au bon fonctionnement du projet.
Vous pourrez donc ajouter vos propres dépendances NPM ici si vous en avez le besoin dans votre projet.
Le dossier src
est celui dans lequel on va travailler. Câest un dossier qui disparait lorsque lâon « build » le projet pour le mettre en production car il ne sert quâau dĂ©veloppeur.
Le fichier src/index.js
est le script de base de notre premier bloc. Il est accompagné de edit.js
ainsi que save.js
. On va analyser tout cela en détail un peu plus tard. On retrouve également block.json
qui permet de dĂ©finir lâexistence du bloc.
Dâailleurs, lorsque lâon ajoutera dâautres blocs, il faudra lĂ©gĂšrement modifier cette structure de base.
On retrouve également un fichier editor.scss
et un autre style.scss
: Webpack les compilera automatiquement dans le bon fichier CSS.
Aparté: Les préprocesseurs CSS
Un petit mot sur les prĂ©processeurs CSS comme Sass : leur objectif est de vous simplifier lâĂ©criture du CSS en proposant des Ă©critures sympathiques :
â Les variables, pour rĂ©utiliser facilement des valeurs
â lâimbrication, afin dâĂ©viter la rĂ©pĂ©tition des sĂ©lecteurs
â la sĂ©paration en plusieurs fichiers, pour mieux organiser votre codeâŠ
Create-block embarque Sass, le plus utilisé des préprocesseurs CSS. Webpack compilera automatiquement les fichiers.
Si vous nâĂȘtes pas Ă lâaise avec les prĂ©processeurs CSS, aucun souci, vous pouvez Ă©crire du CSS standard dans ces fichiers et ça fonctionnera tout aussi bien !
Si vous voulez rĂ©viser ou apprendre les bases en 5 minutes, direction la doc ! Vous allez trĂšs vite gagner du temps sur lâĂ©criture de votre CSS.
En parallĂšle je vous conseille dâinstaller Emmet sur votre Ă©diteur de code afin dâĂȘtre au top de lâefficacitĂ© ! Il est dĂ©jĂ inclus de base dans VSC.
Enfin, le fichier capitainewp-gut-bases.php
(oĂč tout autre nom correspondant au nom de votre projet) contient la dĂ©claration du bloc via la fonction register_block_type()
dont on va bientĂŽt reparler.
Il nây aura mĂȘme pas besoin de charger les scripts et les styles, comme on le fait avec les thĂšmes (voir le cours chargement des ressources) grĂące aux fonctions wp_register_style()
et wp_register_script()
, car WordPress sâen charge automatiquement pour chaque bloc !
Le nĂ©cessaire a Ă©galement Ă©tĂ© fait pour vous permettre dâinternationaliser vos blocs et les traduire dans diffĂ©rentes langues.
Vous voilà désormais pleinement opérationnel pour créer vos blocs !
DerniĂšre chose : nâoubliez pas dâactiver votre extension avant de continuer. Vous pouvez en profiter pour modifier la description au dĂ©but du fichier capitainewp-gut-bases.php
.