Vai al contenuto principale

@babel/node

Traduzione Beta Non Ufficiale

Questa pagina è stata tradotta da PageTurner AI (beta). Non ufficialmente approvata dal progetto. Hai trovato un errore? Segnala problema →

babel-node è una CLI che funziona esattamente come la CLI di Node.js, con il vantaggio aggiuntivo di compilare il codice utilizzando preset e plugin di Babel prima dell'esecuzione.

Installazione

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

Non destinato all'uso in produzione

Non dovresti utilizzare babel-node in produzione. È inutilmente pesante, con elevato consumo di memoria dovuto alla cache memorizzata in memoria. Inoltre, subirai sempre una penalità nelle prestazioni di avvio poiché l'intera applicazione deve essere compilata al volo.

Consulta l'esempio di server Node.js con Babel per un'idea su come utilizzare Babel in un ambiente di produzione.

Il caricamento di moduli in stile ES6 potrebbe non funzionare correttamente

A causa di limitazioni tecniche, il caricamento di moduli in stile ES6 non è completamente supportato in un babel-node REPL.

Babel include una seconda CLI che funziona esattamente come quella di Node.js, con la differenza che compilerà il codice ES6 prima di eseguirlo.

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

nota

Installa prima @babel/node e @babel/core prima di usare npx babel-node, altrimenti npx installerà l'obsoleta versione legacy babel-node 6.x.

Shell
npx babel-node

Se preferisci non installare @babel/node e @babel/core, puoi installarli al volo:

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

Valuta codice.

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

Compila ed esegui test.js.

Shell
npx babel-node test
consiglio

Usa rlwrap per ottenere un REPL con cronologia degli input

Shell
rlwrap npx babel-node

Su alcune piattaforme (come OSX), potrebbero essere necessari argomenti aggiuntivi per far funzionare correttamente rlwrap, ad esempio:

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

Utilizzo

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

Quando gli argomenti dello script utente hanno nomi in conflitto con le opzioni di node, si può usare un doppio trattino prima del nome dello script per risolvere le ambiguità

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

Opzioni

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