Comment utiliser l'environnement REPL de Node.js
La commande node
est celle que nous utilisons pour exécuter nos scripts Node.js :
node script.js
Si nous exécutons la commande node
sans aucun script à exécuter ou sans aucun argument, nous lançons une session REPL :
node
NOTE
REPL signifie Read Evaluate Print Loop (Lire Évaluer Imprimer Boucler), et c'est un environnement de langage de programmation (essentiellement une fenêtre de console) qui prend une seule expression comme entrée utilisateur et renvoie le résultat à la console après exécution. La session REPL fournit un moyen pratique de tester rapidement du code JavaScript simple.
Si vous essayez cela maintenant dans votre terminal, voici ce qui se passe :
> node
>
La commande reste en mode inactif et attend que nous saisissions quelque chose.
TIP
si vous ne savez pas comment ouvrir votre terminal, recherchez sur Google « Comment ouvrir le terminal sur votre système d'exploitation ».
Le REPL attend que nous saisissions du code JavaScript, pour être plus précis.
Commencez simplement et saisissez :
> console.log('test')
test
undefined
>
La première valeur, test
, est la sortie que nous avons demandé à la console d'afficher, puis nous obtenons undefined
qui est la valeur de retour de l'exécution de console.log()
. Node a lu cette ligne de code, l'a évaluée, a imprimé le résultat, puis est retourné à l'attente de plus de lignes de code. Node bouclera sur ces trois étapes pour chaque morceau de code que nous exécutons dans le REPL jusqu'à ce que nous quittions la session. C'est de là que le REPL tire son nom.
Node imprime automatiquement le résultat de toute ligne de code JavaScript sans avoir besoin de le lui demander. Par exemple, tapez la ligne suivante et appuyez sur Entrée :
> 5==5
true
>
Notez la différence dans les sorties des deux lignes ci-dessus. Le REPL Node a imprimé undefined
après avoir exécuté console.log()
, tandis que d'un autre côté, il a simplement imprimé le résultat de 5== '5'
. Vous devez garder à l'esprit que le premier n'est qu'une instruction en JavaScript, et le second est une expression.
Dans certains cas, le code que vous souhaitez tester peut nécessiter plusieurs lignes. Par exemple, supposons que vous souhaitiez définir une fonction qui génère un nombre aléatoire, dans la session REPL, tapez la ligne suivante et appuyez sur Entrée :
function generateRandom()
...
Le REPL Node est suffisamment intelligent pour déterminer que vous n'avez pas encore fini d'écrire votre code, et il passera en mode multiligne pour que vous puissiez saisir plus de code. Maintenant, terminez la définition de votre fonction et appuyez sur Entrée :
function generateRandom()
...return Math.random()
La variable spéciale :
Si après un certain code vous tapez _
, cela affichera le résultat de la dernière opération.
La touche flèche du haut :
Si vous appuyez sur la touche flèche du haut, vous aurez accès à l'historique des lignes de code précédentes exécutées dans la session REPL actuelle, et même les précédentes.
Commandes point
Le REPL possède des commandes spéciales, toutes commençant par un point .
. Ce sont :
.help
: affiche l'aide des commandes point..editor
: active le mode éditeur, pour écrire facilement du code JavaScript multiligne. Une fois dans ce mode, entrezctrl-D
pour exécuter le code que vous avez écrit..break
: lors de la saisie d'une expression multiligne, la commande.break
interrompra la saisie ultérieure. Identique à appuyer surctrl-C
..clear
: réinitialise le contexte REPL à un objet vide et efface toute expression multiligne en cours de saisie..load
: charge un fichier JavaScript, par rapport au répertoire de travail actuel..save
: enregistre tout ce que vous avez entré dans la session REPL dans un fichier (spécifiez le nom du fichier)..exit
: quitte le repl (identique à appuyer deux fois surctrl-C
).
Le REPL sait quand vous tapez une instruction multiligne sans avoir besoin d'appeler .editor
. Par exemple, si vous commencez à taper une itération comme ceci :
[1, 2,3].foxEach(num=>{
et que vous appuyez sur Entrée, le REPL passera à une nouvelle ligne commençant par 3 points, indiquant que vous pouvez maintenant continuer à travailler sur ce bloc.
1... console.log (num)
2...}
Si vous tapez .break
à la fin d'une ligne, le mode multiligne s'arrêtera et l'instruction ne sera pas exécutée.
Exécuter REPL à partir d'un fichier JavaScript
Nous pouvons importer le REPL dans un fichier JavaScript en utilisant repl
.
const repl = require('node:repl')
En utilisant la variable repl
, nous pouvons effectuer diverses opérations. Pour démarrer l'invite de commande REPL, tapez la ligne suivante :
repl.start()
Exécutez le fichier dans la ligne de commande.
node repl.js
Vous pouvez passer une chaîne qui s'affiche au démarrage du REPL. La valeur par défaut est '>' (avec un espace final), mais nous pouvons définir une invite personnalisée.
// une invite de style Unix
const local = repl.start('$ ')
Vous pouvez afficher un message lors de la sortie du REPL
local.on('exit', () => {
console.log('exiting repl')
process.exit()
})
Vous pouvez en savoir plus sur le module REPL dans la documentation repl.