NOTE: This plugin is included in @babel/preset-env, in ES2020.
Transforms import() expressions to non-ESM module formats.
If you are using a bundler, such as Webpack, Rollup or Parcel, you should not use this plugin and let your bundler handle import() expressions.
You should use this plugin if:
This plugin must be used with one of the module transform plugins mentioned above.
input.js
import("jquery").then($ => {});
will be transformed to
output.js
Promise.resolve()
.then(() => _interopRequireWildcard(require("jquery")))
.then(($) => {});
pnpm add --save-dev @babel/plugin-proposal-dynamic-import
babel.config.json
{
"plugins": [
"@babel/plugin-proposal-dynamic-import",
"@babel/plugin-transform-modules-commonjs"
]
}
Shell
babel --plugins=@babel/plugin-proposal-dynamic-import,@babel/plugin-transform-modules-amd script.js
JavaScript
require("@babel/core").transformSync("code", {
plugins: [
"@babel/plugin-proposal-dynamic-import",
"@babel/plugin-transform-modules-systemjs"
],
});
更多建議: