@babel/plugin-transform-dynamic-import
Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →
Este plugin está incluido en @babel/preset-env, como parte de ES2020.
Transforma expresiones import() a formatos de módulo que no sean ESM.
Cuándo (no) usar este plugin
Si estás usando un bundler como Webpack, Rollup o Parcel, no debes usar este plugin y dejar que tu bundler maneje las expresiones import().
Debes usar este plugin si:
-
Estás desarrollando una biblioteca Node.js en ESM pero quieres distribuirla en CommonJS (CJS): Instala este plugin y
@babel/plugin-transform-modules-commonjs -
Usas RequireJS para cargar módulos en el navegador: Instala este plugin y
@babel/plugin-transform-modules-amd -
Usas SystemJS para cargar módulos en el navegador: Instala este plugin y
@babel/plugin-transform-modules-systemjs
Este plugin debe usarse con uno de los plugins de transformación de módulos mencionados anteriormente.
Ejemplo
import("jquery").then($ => {});
se transformará en
- CommonJS
- AMD
- SystemJS
Promise.resolve()
.then(() => _interopRequireWildcard(require("jquery")))
.then(($) => {});
define(["require"], function (_require) {
new Promise((_resolve, _reject) =>
_require(
["jquery"],
(imported) => _resolve(_interopRequireWildcard(imported)),
_reject
)
).then(($) => {});
});
System.register([], function (_export, _context) {
"use strict";
return {
setters: [],
execute: function () {
_context.import("jquery").then(($) => {});
}
};
});
Instalación
- npm
- Yarn
- pnpm
- Bun
npm install --save-dev @babel/plugin-transform-dynamic-import
yarn add --dev @babel/plugin-transform-dynamic-import
pnpm add --save-dev @babel/plugin-transform-dynamic-import
bun add --dev @babel/plugin-transform-dynamic-import
Uso
Mediante un archivo de configuración (Recomendado)
{
"plugins": [
"@babel/plugin-transform-dynamic-import",
"@babel/plugin-transform-modules-commonjs"
]
}
Mediante la CLI
babel --plugins=@babel/plugin-transform-dynamic-import,@babel/plugin-transform-modules-amd script.js
Mediante la API de Node
require("@babel/core").transformSync("code", {
plugins: [
"@babel/plugin-transform-dynamic-import",
"@babel/plugin-transform-modules-systemjs"
],
});