Vai al contenuto principale

@babel/core

Traduzione Beta Non Ufficiale

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

JavaScript
var babel = require("@babel/core");
import { transform } from "@babel/core";
import * as babel from "@babel/core";

Tutte le trasformazioni utilizzeranno i tuoi file di configurazione locali.

transform

babel.transform(code: string, options?: Object, callback: Function)

Trasforma il code passato come argomento. Richiama una callback con un oggetto contenente il codice generato, la source map e l'AST.

JavaScript
babel.transform(code, options, function(err, result) {
result; // => { code, map, ast }
});

Esempio

JavaScript
babel.transform("code();", options, function(err, result) {
result.code;
result.map;
result.ast;
});
informazioni

In Babel 6, questo metodo era sincrono e transformSync non esisteva. Per compatibilità con le versioni precedenti, questa funzione si comporterà in modo sincrono se non viene fornita una callback. Se stai iniziando con Babel 7 e hai bisogno di un comportamento sincrono, utilizza transformSync poiché questa compatibilità verrà rimossa in Babel 8.

transformSync

babel.transformSync(code: string, options?: Object)

Trasforma il code passato come argomento. Restituisce un oggetto contenente il codice generato, la source map e l'AST.

JavaScript
babel.transformSync(code, options); // => { code, map, ast }

Esempio

JavaScript
var result = babel.transformSync("code();", options);
result.code;
result.map;
result.ast;

transformAsync

babel.transformAsync(code: string, options?: Object)

Trasforma il code passato come argomento. Restituisce una promise per un oggetto contenente il codice generato, la source map e l'AST.

JavaScript
babel.transformAsync(code, options); // => Promise<{ code, map, ast }>

Esempio

JavaScript
babel.transformAsync("code();", options).then(result => {
result.code;
result.map;
result.ast;
});

transformFile

babel.transformFile(filename: string, options?: Object, callback: Function)

Trasforma in modo asincrono l'intero contenuto di un file.

JavaScript
babel.transformFile(filename, options, callback);

Esempio

JavaScript
babel.transformFile("filename.js", options, function(err, result) {
result; // => { code, map, ast }
});

transformFileSync

babel.transformFileSync(filename: string, options?: Object)

Versione sincrona di babel.transformFile. Restituisce il contenuto trasformato del filename.

JavaScript
babel.transformFileSync(filename, options); // => { code, map, ast }

Esempio

JavaScript
babel.transformFileSync("filename.js", options).code;

transformFileAsync

babel.transformFileAsync(filename: string, options?: Object)

Versione promise-based di babel.transformFile. Restituisce una promise per il contenuto trasformato del filename.

JavaScript
babel.transformFileAsync(filename, options); // => Promise<{ code, map, ast }>

Esempio

JavaScript
babel.transformFileAsync("filename.js", options).then(result => {
result.code;
});

transformFromAst

babel.transformFromAst(ast: Object, code?: string, options?: Object, callback: Function): FileNode | null

Data un'AST, la trasforma.

JavaScript
const sourceCode = "if (true) return;";
const parsedAst = babel.parseSync(sourceCode, {
parserOpts: { allowReturnOutsideFunction: true },
});
babel.transformFromAst(parsedAst, sourceCode, options, function(err, result) {
const { code, map, ast } = result;
});
informazioni

In Babel 6, questo metodo era sincrono e transformFromAstSync non esisteva. Per compatibilità con le versioni precedenti, questa funzione si comporterà in modo sincrono se non viene fornita una callback. Se stai iniziando con Babel 7 e hai bisogno di un comportamento sincrono, utilizza transformFromAstSync poiché questa compatibilità verrà rimossa in Babel 8.

transformFromAstSync

babel.transformFromAstSync(ast: Object, code?: string, options?: Object)

Data un'AST, la trasforma.

JavaScript
const sourceCode = "if (true) return;";
const parsedAst = babel.parseSync(sourceCode, {
parserOpts: { allowReturnOutsideFunction: true },
});
const { code, map, ast } = babel.transformFromAstSync(
parsedAst,
sourceCode,
options
);

transformFromAstAsync

babel.transformFromAstAsync(ast: Object, code?: string, options?: Object)

Data un'AST, la trasforma.

JavaScript
const sourceCode = "if (true) return;";
babel
.parseAsync(sourceCode, { parserOpts: { allowReturnOutsideFunction: true } })
.then(parsedAst => {
return babel.transformFromAstAsync(parsedAst, sourceCode, options);
})
.then(({ code, map, ast }) => {
// ...
});

parse

babel.parse(code: string, options?: Object, callback: Function)

Dato del codice, lo analizza utilizzando il comportamento standard di Babel. I preset e i plugin referenziati verranno caricati in modo che le estensioni sintattiche opzionali siano abilitate automaticamente.

informazioni

Nelle prime beta di Babel 7, questo metodo era sincrono e parseSync non esisteva. Per compatibilità con le versioni precedenti, questa funzione si comporterà in modo sincrono se non viene fornita una callback. Se stai utilizzando Babel 7 stabile e necessiti di un comportamento sincrono, utilizza parseSync poiché questa compatibilità verrà rimossa in Babel 8.

parseSync

babel.parseSync(codice: string, opzioni?: Object)

Restituisce un AST.

Dato del codice, lo analizza utilizzando il comportamento standard di Babel. I preset e i plugin referenziati verranno caricati in modo che le estensioni sintattiche opzionali siano abilitate automaticamente.

parseAsync

babel.parseAsync(codice: string, opzioni?: Object)

Restituisce una promise per un AST.

Dato del codice, lo analizza utilizzando il comportamento standard di Babel. I preset e i plugin referenziati verranno caricati in modo che le estensioni sintattiche opzionali siano abilitate automaticamente.

API Avanzate

Molti sistemi che integrano Babel preferiscono iniettare automaticamente plugin e preset, o sovrascrivere le opzioni. Per questo scopo, Babel espone diverse funzioni che aiutano a caricare parzialmente la configurazione senza eseguire trasformazioni.

loadOptions

babel.loadOptions(opzioni?: Object)

Risolvi completamente le opzioni di Babel, ottenendo un oggetto opzioni dove:

  • opts.plugins è una lista completa di istanze Plugin.

  • opts.presets è vuoto e tutti i preset sono appiattiti in opts.

  • Può essere passato in sicurezza a Babel. Campi come "babelrc" sono impostati su false in modo che chiamate successive a Babel non tentino di caricare nuovamente file di configurazione.

Le istanze Plugin non sono pensate per essere manipolate direttamente, ma spesso i chiamanti serializzano questo opts in JSON per usarlo come chiave di cache rappresentante le opzioni ricevute da Babel. La cache su questo non garantisce al 100% un'invalidazione corretta, ma rappresenta attualmente la soluzione migliore.

loadPartialConfig

babel.loadPartialConfig(opzioni?: Object): PartialConfig

Per permettere ai sistemi di manipolare e validare facilmente la configurazione utente, questa funzione risolve plugin e preset senza procedere oltre. Si prevede che i chiamanti prendano .options della configurazione, la manipolino a piacere e la ripassino a Babel.

Questa funzione accetta un'opzione aggiuntiva nell'oggetto opzioni oltre alle opzioni standard: showIgnoredFiles. Quando impostata su true, loadPartialConfig restituisce sempre un risultato quando un file viene ignorato, anziché null. Questo è utile per permettere al chiamante di accedere alla lista dei file che hanno influenzato l'esito, ad esempio per la modalità watch. Il chiamante può determinare se un file è stato ignorato in base alla proprietà fileHandling restituita.

  • babelrc: string | void - Il percorso del file di configurazione relativo al file, se presente.

  • babelignore: string | void - Il percorso del file .babelignore, se presente.

  • config: string | void - Il percorso del file di configurazione globale del progetto, se presente.

  • options: ValidatedOptions - Le opzioni parzialmente risolte, che possono essere modificate e ripassate a Babel.

    • plugins: Array<ConfigItem> - Vedi sotto.
    • presets: Array<ConfigItem> - Vedi sotto.
    • Può essere passato nuovamente a Babel in sicurezza. Opzioni come "babelrc" sono impostate su false per evitare che chiamate successive a Babel tentino di ricaricare file di configurazione.
  • hasFilesystemConfig(): boolean - Verifica se la configurazione risolta ha caricato impostazioni dal filesystem.

  • fileHandling - Impostato a "transpile", "ignored" o "unsupported" per indicare all'utente come gestire questo file.

  • files - Un Set di percorsi file letti per costruire la configurazione risultante, inclusi file di configurazione globali, locali, file di configurazione estesi, file ignore, ecc. Utile per implementare watch mode o invalidamento cache.

Le istanze di ConfigItem espongono proprietà per introspezione dei valori, ma ogni elemento deve essere trattato come immutabile. Se sono necessarie modifiche, l'elemento dovrebbe essere rimosso dalla lista e sostituito con un normale valore di configurazione Babel, o con un elemento sostitutivo creato da babel.createConfigItem. Vedi la funzione per informazioni sui campi di ConfigItem.

createConfigItem

babel.createConfigItem(value: string | {} | Function | [string | {} | Function, {} | void], { dirname?: string, type?: "preset" | "plugin" }): ConfigItem

Consente ai tool di build di creare e memorizzare in cache elementi di configurazione in anticipo. Se questa funzione viene chiamata più volte per un plugin specifico, Babel chiamerà la funzione del plugin più volte. Se hai un set chiaro di plugin e preset da iniettare, è consigliabile pre-costruire gli elementi di configurazione.

Tipo ConfigItem

Ogni ConfigItem espone tutte le informazioni note a Babel. I campi sono:

  • value: {} | Function - Il valore risolto del plugin.

  • options: {} | void - L'oggetto opzioni passato al plugin.

  • dirname: string - Il percorso relativo a cui le opzioni fanno riferimento.

  • name: string | void - Il nome assegnato dall'utente all'istanza del plugin, es. plugins: [ ['env', {}, 'my-env'] ]

  • file: Object | void - Informazioni sul file del plugin, se note a Babel.

    • request: string - Il file richiesto dall'utente, es. "@babel/env"
    • resolved: string - Il percorso completo del file risolto, es. "/tmp/node_modules/@babel/preset-env/lib/index.js"

DEFAULT_EXTENSIONS

babel.DEFAULT_EXTENSIONS: readonly string[];

Lista di estensioni predefinite supportate da Babel (".js", ".jsx", ".es6", ".es", ".mjs", ".cjs"). Utilizzata da @babel/register e @babel/cli per determinare quali file richiedono transpilazione. Non è possibile estendere questa lista, tuttavia @babel/cli offre modi per supportare altre estensioni con --extensions.

Opzioni

Vedi la lista completa delle opzioni qui.