@babel/plugin-transform-dynamic-import
Questa pagina è stata tradotta da PageTurner AI (beta). Non ufficialmente approvata dal progetto. Hai trovato un errore? Segnala problema →
Questo plugin è incluso in @babel/preset-env, nello standard ES2020.
Trasforma le espressioni import() in formati di modulo non-ESM.
Quando (non) usare questo plugin
Se stai utilizzando un bundler come Webpack, Rollup o Parcel, non dovresti usare questo plugin e lasciare che il tuo bundler gestisca le espressioni import().
Dovresti usare questo plugin se:
-
Stai sviluppando una libreria Node.js in ESM ma vuoi distribuirla in CommonJS (CJS): Installa questo plugin e
@babel/plugin-transform-modules-commonjs -
Utilizzi RequireJS per caricare moduli nel browser: Installa questo plugin e
@babel/plugin-transform-modules-amd -
Utilizzi SystemJS per caricare moduli nel browser: Installa questo plugin e
@babel/plugin-transform-modules-systemjs
Questo plugin deve essere utilizzato insieme a uno dei plugin di trasformazione dei moduli menzionati sopra.
Esempio
import("jquery").then($ => {});
verrà trasformato in
- 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(($) => {});
}
};
});
Installazione
- 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
Utilizzo
Con un file di configurazione (Consigliato)
{
"plugins": [
"@babel/plugin-transform-dynamic-import",
"@babel/plugin-transform-modules-commonjs"
]
}
Tramite CLI
babel --plugins=@babel/plugin-transform-dynamic-import,@babel/plugin-transform-modules-amd script.js
Tramite Node API
require("@babel/core").transformSync("code", {
plugins: [
"@babel/plugin-transform-dynamic-import",
"@babel/plugin-transform-modules-systemjs"
],
});