@babel/node
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
- 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 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).
Installa prima @babel/node e @babel/core prima di usare npx babel-node, altrimenti npx installerà l'obsoleta versione legacy babel-node 6.x.
npx babel-node
Se preferisci non installare @babel/node e @babel/core, puoi installarli al volo:
npx -p @babel/core -p @babel/node babel-node
Valuta codice.
npx babel-node -e "class Test { }"
Compila ed esegui test.js.
npx babel-node test
Usa rlwrap per ottenere un REPL con cronologia degli input
rlwrap npx babel-node
Su alcune piattaforme (come OSX), potrebbero essere necessari argomenti aggiuntivi per far funzionare correttamente rlwrap, ad esempio:
NODE_NO_READLINE=1 rlwrap --always-readline npx babel-node
Utilizzo
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à
npx babel-node --inspect --presets @babel/preset-env -- script.js --inspect
Opzioni
| 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'. |