@babel/node
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
- Yarn
- pnpm
- Bun
npm install --save-dev @babel/core @babel/node
yarn add --dev @babel/core @babel/node
pnpm add --save-dev @babel/core @babel/node
bun add --dev @babel/core @babel/node
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).
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.
npx babel-node
Si vous préférez ne pas installer @babel/node et @babel/core, vous pouvez les installer à la volée :
npx -p @babel/core -p @babel/node babel-node
Évaluer du code.
npx babel-node -e "class Test { }"
Compiler et exécuter test.js.
npx babel-node test
Utilisez rlwrap pour obtenir un REPL avec historique de saisie
rlwrap npx babel-node
Sur certaines plateformes (comme OSX), des arguments supplémentaires peuvent être nécessaires pour que rlwrap fonctionne correctement :
NODE_NO_READLINE=1 rlwrap --always-readline npx babel-node
Utilisation
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
npx babel-node --inspect --presets @babel/preset-env -- script.js --inspect
Options
| Option | Default | Description |
|---|---|---|
-e, --eval [script] | Evaluate script | |
-p, --print | Evaluate script and print result | |
-i, --ignore [regex] | node_modules | Ignore 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 directory | Only 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'. |