@babel/core
Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →
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.
babel.transform(code, options, function(err, result) {
result; // => { code, map, ast }
});
Ejemplo
babel.transform("code();", options, function(err, result) {
result.code;
result.map;
result.ast;
});
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.
babel.transformSync(code, options); // => { code, map, ast }
Ejemplo
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.
babel.transformAsync(code, options); // => Promise<{ code, map, ast }>
Ejemplo
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.
babel.transformFile(filename, options, callback);
Ejemplo
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.
babel.transformFileSync(filename, options); // => { code, map, ast }
Ejemplo
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.
babel.transformFileAsync(filename, options); // => Promise<{ code, map, ast }>
Ejemplo
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.
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;
});
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.
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.
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.
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.pluginses una lista completa de instancias dePlugin. -
opts.presetsestá vacío y todos los presets se aplanan enopts. -
Puede pasarse de vuelta a Babel de forma segura. Campos como
"babelrc"se establecen enfalsepara 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- UnSetde 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í.