Formation « Créer des blocs avec Gutenberg »

Node & NPM : outils et librairies nécessaires

Lecture : 5 minutes • 2

Afin de pouvoir développer nos blocs Gutenberg, il est nécessaire de mettre en place quelques outils, comme notamment NodeJs, qui nous permettra d’utiliser NPM, le gestionnaire de dépendances Javascript.

Node.js et NPM, c’est quoi ?

Node et NPM

Node.js

Node.js pour faire simple, c’est un serveur en Javascript qui permet tout un tas de choses. Il peut être utilisé par exemple comme un serveur web, ou encore en local sur sa machine pour assister le développeur lorsqu’il créé un site ou une application.

Il n’y a rien qui cloche dans ce que je viens dire ? Un serveur en Javascript vraiment ? On m’a toujours dit que JS c’était un langage de programmation côté client non ?

Et bien si, tout à fait ! Mais lorsque son créateur a imaginé un environnement temps réel basé sur des événements pour en faire un outil passe-partout, il s’est dit que Javascript était le langage le mieux adapté pour ça !

Du coup on utilise aujourd’hui Node.js dans des cas très divers et variés. Il peut-être utilisé :

  1. Comme serveur pour des applications web qui affichent des informations en temps réel (par exemple des applications de visio).
  2. En local sur la machine du développeur pour compiler et transformer des fichiers lors de l’enregistrement
  3. Pour gérer les dépendances d’un projet (toutes les librairies externes) grâce à NPM

C’est surtout les points 2 et 3 qui vont nous intéresser pendant cette formation.

Le saviez-vous ?

De grands groupes comme IBM, LinkedIn, Microsoft, Netflix, Paypal… l’utilisent aujourd’hui. Node.js est devenu omniprésent dans tout ce qui touche aux applications web modernes.

NPM

NPM est le système de gestion de paquets pour Javascript. On y retrouve des dizaines de milliers de librairies utilisables pour tous types de projets web.

NPM est totalement écrit en JS et intégré de base dans Node, c’est pour cette raison que l’on va l’installer.

Il consiste en un répertoire en ligne qui centralise toutes les librairies Javascript. Un développeur peut alors facilement, dans son projet, dire qu’il a besoin de certaines librairies JS : on parle de dépendances.

Au début de la période jQuery on devait manuellement télécharger nos scripts externes, comme par exemple : jQuery, Moment.js (qui permet de simplifier la gestion de dates en JS, un incontournable), et Select2 (un champ select amélioré et personnalisable).

On ne s’en sortait pas. Et c’est NPM qui a permis de corriger ce problème.

Information

NPM est à Javascript ce que le répertoire des extensions est à WordPress. Chaque langage de programmation a son propre système de gestion de paquets (PHP a composer, Java a Maven…), mais ce n’est que très tard qu’est apparu NPM pour combler le manque de gestionnaire pour JS.

Sur le principe, on utilise NPM en ligne de commande, et on indique quelles sont les dépendances nécessaires à notre projet via la commande : npm install <nomdelalib>.

Un fichier package.json est alors créé à la racine de votre projet contenant les dépendances et la version minimale à télécharger :

JS
package.json

Ces librairies, seront ensuite stockées dans le dossier /node_modules. De là il sera très facile de mettre à jour ces packages ultérieurement sans devoir aller tout télécharger à la main.

Conseil

Pour synthétiser on peut dire que Node c’est du Javascript qui tourne sur un serveur dans une machine virtuelle. Et NPM permet de télécharger des librairies et gérer leurs dépendances.

Dans quels cas on va utiliser Node et NPM

Bon c’est super tout ça mais quel est le rapport avec Gutenberg ?

Et bien comme Gutenberg utilise React (qui pour le coup est une simple librairie comme jQuery), on va utiliser le système de dépendances pour indiquer que l’on a besoin de React et pleins d’autres librairies au passage.

De plus, je vous ai montré plus haut un exemple simple et standard. Mais en réalité NPM va plus loin. Il permet de télécharger des dépendances qui vont servir seulement pendant la phase développement, comme Webpack (que l’on va utiliser), qui permet de compiler les fichiers Javascript lorsqu’on les modifie sur notre machine.

En effet le code que l’on va écrire, et notre organisation de fichiers ne seraient pas compris nativement par un navigateur. C’est pour ça qu’on aura besoin qu’un outil vienne compiler et transformer tout ça.

Si vous avez déjà utilisé des préprocesseurs CSS comme Sass, Less ou Stylus, c’est exactement le même principe.

Dans les 2 prochains cours on va voir tout cela plus en détails. Ce qu’il faut retenir pour l’instant c’est que Webpack utilise Node pour fonctionner.

Installer Node.js sur son ordinateur

C’est ici la partie la plus simple : Node.js dispose d’un installeur classique compatible avec tous les systèmes d’exploitation.

Il suffit donc de le télécharger et lancer l’installation. Prenez la version la plus récente afin d’être à jour en terme de fonctionnalités et sécurité.

Pour ce que l’on va faire ensuite, nous aurons besoin de la version 8 au minimum, donc si ça fait un petit moment que vous l’avez installé, faites une mise à jour !

Télécharger l’installeur Node.js

L’installation ne pose aucun souci, cliquez sur continuer jusqu’à ce que l’assistant en aie terminé.

Installer Node Js
L’assistant d’installation de Node

La dernière fenêtre de l’assistant nous indique qu’il a bien installé Node.js ainsi que NPM !

Outils de ligne de commande

Apps terminal

Pendant cette formation, nous allons utiliser Webpack qui va compiler notre code. Il utilise NPM que l’on vient d’installer.

Pour lancer le tout on a besoin d’un outil de ligne de commande (Command Line interface), ou pour faire simple, un terminal.

Sur Windows vous avez le PowerShell et sur Mac le terminal natif. Pour ma part j’utilise iTerm2 que je trouve un peu plus sexy.

Mais franchement pour le peu que l’on va s’en servir, inutile d’en télécharger un autre.

Conseil

Vous êtes allergique à la ligne de commande ? Ne vous inquiétez pas, on va simplement lancer une commande via le terminal, donc même si vous n’êtes pas à l’aise (un peu comme moi avant) ça devrait bien se passer !

Vérifier que tout fonctionne

Lancez donc votre terminal et tapez npm -v, puis validez. Si tout va bien le numéro de version de NPM devrait apparaitre. Faites la même chose pour node :  node -v.

NPM et Node sont bien accessibles à partir de la ligne de commande !
NPM et Node sont bien accessibles à partir de la ligne de commande !

Super, tout va bien ! Si ça ne fonctionne pas, laissez-moi un commentaire en bas de page. Il se peut qu’il faille ajouter le chemin à votre $PATH global.

Installer la syntaxe JSX dans son éditeur

Une dernière chose pendant qu’on est dans l’installation des outils : pour bien afficher la syntaxe particulière de React, appelée JSX dans votre éditeur de code, pensez à ajouter le package correspondant pour que la coloration de votre code fonctionne correctement.

Dans Atom par exemple allez dans Preferences... > Install et tapez JSX dans la recherche.

Installez ce package pour avoir la bonne coloration syntaxique

Sélectionnez le module language-javascript-jsx et installez-le !


Parfait, on est désormais paré pour la suite. Dans le prochain cours on va découvrir rapidement Webpack, qui nous permettra de compiler les fichiers JS et simplifier la vie du développeur.

2

Questions, réponses et commentaires

  1. SAS BiiG

    Le 31 mars 2020

    Je crois que le NPM de la minute 5’10 » a été mal prononcé.

    1. Maxime BJ

      Le 31 mars 2020

      On dirait que j’ai dit NTM… (Oh merde lol)

Laisser un commentaire