Saltar al contenido principal

@babel/core

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 →

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

Todas las transformaciones utilizarán tus archivos de configuración locales.

transform

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

Transforma el code proporcionado. Ejecuta un callback con un objeto que contiene el código generado, el mapa de origen (source map) y el AST.

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

Ejemplo

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

En Babel 6, este método era síncrono y transformSync no existía. Por compatibilidad con versiones anteriores, esta función se comportará de manera síncrona si no se proporciona un callback. Si estás comenzando con Babel 7 y necesitas comportamiento síncrono, por favor usa transformSync ya que esta compatibilidad con versiones anteriores se eliminará en Babel 8.

transformSync

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

Transforma el code proporcionado. Devuelve un objeto con el código generado, el mapa de origen (source map) y el AST.

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

Ejemplo

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

transformAsync

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

Transforma el code proporcionado. Devuelve una promesa que resuelve en un objeto con el código generado, el mapa de origen (source map) y el AST.

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

Ejemplo

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

transformFile

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

Transforma de forma asíncrona todo el contenido de un archivo.

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

Ejemplo

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

transformFileSync

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

Versión síncrona de babel.transformFile. Devuelve el contenido transformado del filename.

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

Ejemplo

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

transformFileAsync

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

Versión basada en promesas de babel.transformFile. Devuelve una promesa para el contenido transformado del filename.

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

Ejemplo

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

transformFromAst

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

Transforma un AST dado.

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;
});
información

En Babel 6, este método era síncrono y transformFromAstSync no existía. Por compatibilidad con versiones anteriores, esta función se comportará de manera síncrona si no se proporciona un callback. Si estás comenzando con Babel 7 y necesitas comportamiento síncrono, por favor usa transformFromAstSync ya que esta compatibilidad con versiones anteriores se eliminará en Babel 8.

transformFromAstSync

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

Transforma un AST dado.

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)

Transforma un AST dado.

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)

Dado un código, lo analiza usando el comportamiento estándar de Babel. Los presets y plugins referenciados se cargarán de modo que los plugins de sintaxis opcionales se habiliten automáticamente.

información

En las primeras versiones beta de Babel 7, este método era síncrono y parseSync no existía. Por compatibilidad hacia atrás, esta función se comportará de manera síncrona si no se proporciona un callback. Si estás usando Babel 7 estable y necesitas comportamiento síncrono, usa parseSync ya que esta compatibilidad hacia atrás se eliminará en Babel 8.

parseSync

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

Devuelve un AST.

Dado un código, lo analiza usando el comportamiento estándar de Babel. Los presets y plugins referenciados se cargarán de modo que los plugins de sintaxis opcionales se habiliten automáticamente.

parseAsync

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

Devuelve una promesa que resuelve en un AST.

Dado un código, lo analiza usando el comportamiento estándar de Babel. Los presets y plugins referenciados se cargarán de modo que los plugins de sintaxis opcionales se habiliten automáticamente.

APIs avanzadas

Muchos sistemas que encapsulan Babel suelen inyectar automáticamente plugins y presets, o sobrescribir opciones. Para lograrlo, Babel expone varias funciones que ayudan a cargar la configuración parcialmente sin transformar.

loadOptions

babel.loadOptions(options?: Object)

Resuelve completamente las opciones de Babel, generando un objeto de opciones donde:

  • opts.plugins es una lista completa de instancias de Plugin.

  • opts.presets está vacío y todos los presets se aplanan en opts.

  • Puede pasarse de vuelta a Babel de forma segura. Campos como "babelrc" se establecen en false para que llamadas posteriores a Babel no intenten cargar archivos de configuración nuevamente.

Las instancias de Plugin no están diseñadas para manipularse directamente, pero a menudo los llamadores serializarán este opts a JSON para usarlo como clave de caché que represente las opciones que Babel ha recibido. El caché basado en esto no garantiza al 100% una invalidación adecuada, pero es lo mejor disponible actualmente.

loadPartialConfig

babel.loadPartialConfig(options?: Object): PartialConfig

Para permitir que los sistemas manipulen y validen fácilmente la configuración del usuario, esta función resuelve los plugins y presets sin avanzar más. Se espera que los llamadores tomen las .options de la configuración, las manipulen según necesiten y las pasen de nuevo a Babel.

Esta función acepta una opción adicional en el objeto de opciones además de las opciones estándar: showIgnoredFiles. Cuando se establece en true, loadPartialConfig siempre devuelve un resultado cuando un archivo es ignorado, en lugar de null. Esto es útil para permitir que el llamador acceda a la lista de archivos que influyeron en este resultado, ej. para el modo watch. El llamador puede determinar si un archivo fue ignorado según la propiedad fileHandling devuelta.

  • babelrc: string | void - La ruta del archivo de configuración relativa al archivo, si existiera.

  • babelignore: string | void - La ruta del archivo .babelignore, si existiera.

  • config: string | void - La ruta del archivo de configuración global del proyecto, si existiera.

  • options: ValidatedOptions - Opciones parcialmente resueltas que pueden modificarse y pasarse nuevamente a Babel.

    • plugins: Array<ConfigItem> - Ver más abajo.
    • presets: Array<ConfigItem> - Ver más abajo.
    • Puede pasarse de forma segura a Babel. Opciones como "babelrc" se establecen en false para que llamadas posteriores a Babel no intenten cargar archivos de configuración nuevamente.
  • hasFilesystemConfig(): boolean - Comprueba si la configuración resuelta cargó ajustes desde el sistema de archivos.

  • fileHandling - Toma valores "transpile", "ignored" o "unsupported" para indicar al llamante qué hacer con este archivo.

  • files - Un Set de rutas de archivos leídos para construir la configuración resultante, incluyendo archivos de configuración globales, locales, extendidos, archivos ignore, etc. Útil para implementar modo watch o invalidación de caché.

Las instancias de ConfigItem exponen propiedades para inspeccionar valores, pero cada elemento debe tratarse como inmutable. Si se requieren cambios, el elemento debe eliminarse de la lista y reemplazarse con un valor de configuración normal de Babel, o con un elemento creado mediante babel.createConfigItem. Consulte esa función para conocer los campos de ConfigItem.

createConfigItem

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

Permite a las herramientas de construcción crear y almacenar elementos de configuración por adelantado. Si esta función se llama múltiples veces para un mismo plugin, Babel ejecutará la función del plugin varias veces. Si tienes un conjunto definido de plugins y presets para inyectar, se recomienda preconstruir los elementos de configuración.

Tipo ConfigItem

Cada ConfigItem expone toda la información que Babel conoce. Los campos son:

  • value: {} | Function - Valor resuelto del plugin.

  • options: {} | void - Objeto de opciones pasado al plugin.

  • dirname: string - Ruta base relativa para las opciones.

  • name: string | void - Nombre asignado por el usuario a la instancia del plugin, ej. plugins: [ ['env', {}, 'my-env'] ]

  • file: Object | void - Información sobre el archivo del plugin, si Babel la conoce.

    • request: string - Archivo solicitado por el usuario, ej. "@babel/env"
    • resolved: string - Ruta completa del archivo resuelto, ej. "/tmp/node_modules/@babel/preset-env/lib/index.js"

DEFAULT_EXTENSIONS

babel.DEFAULT_EXTENSIONS: readonly string[];

Lista de extensiones predeterminadas admitidas por Babel (".js", ".jsx", ".es6", ".es", ".mjs", ".cjs"). Usada por @babel/register y @babel/cli para determinar qué archivos requieren transpilación. No es posible extender esta lista, aunque @babel/cli permite admitir otras extensiones mediante --extensions.

Opciones

Consulte la lista completa de opciones aquí.