Saltar al contenido principal

@babel/node

Traducción Beta No Oficial

Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →

babel-node es una CLI que funciona exactamente igual que la CLI de Node.js, con el beneficio adicional de compilar con presets y plugins de Babel antes de ejecutarla.

Instalación

npm install --save-dev @babel/core @babel/node
precaución

No está destinado para uso en producción

No deberías usar babel-node en producción. Es innecesariamente pesado, con alto consumo de memoria debido a que la caché se almacena en memoria. Además, siempre experimentarás penalización en el rendimiento de arranque ya que toda la aplicación debe compilarse sobre la marcha.

Consulta el ejemplo de servidor Node.js con Babel para ver cómo usar Babel en despliegues de producción.

La carga de módulos estilo ES6 puede no funcionar correctamente

Debido a limitaciones técnicas, la carga de módulos estilo ES6 no está completamente soportada en un babel-node REPL.

Babel incluye una segunda CLI que funciona exactamente igual que la CLI de Node.js, con la diferencia de que compila código ES6 antes de ejecutarlo.

Inicia un REPL (Read-Eval-Print-Loop).

nota

Debes instalar @babel/node y @babel/core antes de usar npx babel-node, de lo contrario npx instalará la versión heredada obsoleta de babel-node 6.x.

Shell
npx babel-node

Si prefieres no instalar @babel/node y @babel/core, puedes instalarlos sobre la marcha:

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

Evalúa código.

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

Compila y ejecuta test.js.

Shell
npx babel-node test
consejo

Usa rlwrap para obtener un REPL con historial de comandos

Shell
rlwrap npx babel-node

En algunas plataformas (como OSX), pueden requerirse argumentos adicionales para que rlwrap funcione correctamente, ej:

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

Uso

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

Cuando los argumentos del script de usuario tienen nombres que entran en conflicto con opciones de node, se puede usar un doble guión antes del nombre del script para resolver ambigüedades:

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

Opciones

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'.