Aller au contenu principal

@babel/node

Traduction Bêta Non Officielle

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 →

babel-node est une interface en ligne de commande (CLI) fonctionnant exactement comme la CLI Node.js, avec l'avantage supplémentaire de compiler le code avec des presets et plugins Babel avant son exécution.

Installation

npm install --save-dev @babel/core @babel/node
attention

Non destiné à une utilisation en production

Vous ne devriez pas utiliser babel-node en production. Il est inutilement lourd avec une forte consommation mémoire due au cache stocké en mémoire. Vous subirez également systématiquement une pénalité de démarrage puisque l'application entière doit être compilée à la volée.

Consultez le serveur Node.js exemple avec Babel pour comprendre comment utiliser Babel dans un déploiement production.

Le chargement de modules ES6 peut dysfonctionner

En raison de limitations techniques, le chargement de modules au format ES6 n'est pas entièrement pris en charge dans un babel-node REPL.

Babel inclut une deuxième CLI fonctionnant exactement comme celle de Node.js, mais compilant le code ES6 avant son exécution.

Lance un REPL (boucle Lecture-Évaluation-Impression).

note

Vous devez d'abord installer @babel/node et @babel/core avant d'utiliser npx babel-node, sinon npx installera l'ancienne version 6.x de babel-node.

Shell
npx babel-node

Si vous préférez ne pas installer @babel/node et @babel/core, vous pouvez les installer à la volée :

Shell
npx -p @babel/core -p @babel/node babel-node

Évaluer du code.

Shell
npx babel-node -e "class Test { }"

Compiler et exécuter test.js.

Shell
npx babel-node test
astuce

Utilisez rlwrap pour obtenir un REPL avec historique de saisie

Shell
rlwrap npx babel-node

Sur certaines plateformes (comme OSX), des arguments supplémentaires peuvent être nécessaires pour que rlwrap fonctionne correctement :

Shell
NODE_NO_READLINE=1 rlwrap --always-readline npx babel-node

Utilisation

Shell
babel-node [options] [ -e script | [--] script.js ] [arguments]

Lorsque des arguments de script utilisateur entrent en conflit avec des options Node, un double tiret placé avant le nom du script permet de lever les ambiguïtés

Shell
npx babel-node --inspect --presets @babel/preset-env -- script.js --inspect

Options

OptionDefaultDescription
-e, --eval [script]Evaluate script
-p, --printEvaluate script and print result
-i, --ignore [regex]node_modulesIgnore all files that match this regex when using the require hook. If both -i and -o are omitted, files outside the current working directory are also ignored.
-o, --only [regex]current working directoryOnly include (and exclude all other) files that match this regex when using the require hook. If both -i and -o are omitted, files outside the current working directory are also ignored.
-x, --extensions".js",".jsx",".es6",".es","cjs"List of extensions to hook into
--presets[]Comma-separated list of presets (a set of plugins) to load and use.
--plugins[]Comma-separated list of plugins to load and use.
--config-file [path][]Path to the babel config file to use. Defaults to working directory babel.config.json or babel.config.js. The following options in config files are not supported: ignore, only.
--env-name [name][]The name of the 'env' to use when loading configs and plugins. Defaults to the value of BABEL_ENV, or else NODE_ENV, or else 'development'.