Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用babel预置环境保存动态导入语句?_Javascript_Webpack_Babeljs_Dynamic Import - Fatal编程技术网

Javascript 如何使用babel预置环境保存动态导入语句?

Javascript 如何使用babel预置环境保存动态导入语句?,javascript,webpack,babeljs,dynamic-import,Javascript,Webpack,Babeljs,Dynamic Import,我正在创建包含用于代码拆分的动态导入的共享模块 我有如下代码: import('./moduleA')。然后(/*dostuff*/) 然而,babel将其编译为延迟要求,从而阻止Webpack进行代码拆分 转换后的结果如下所示: Promise.resolve()。然后(()=>require('./moduleA')。然后(/*dostuff*/) My.babelrc.json很简单,只包含: { "presets": ["@babel/preset-

我正在创建包含用于代码拆分的动态导入的共享模块

我有如下代码:

import('./moduleA')。然后(/*dostuff*/)
然而,babel将其编译为延迟要求,从而阻止Webpack进行代码拆分

转换后的结果如下所示:

Promise.resolve()。然后(()=>require('./moduleA')。然后(/*dostuff*/)
My
.babelrc.json
很简单,只包含:

{
  "presets": ["@babel/preset-env"]
}

如何在我的babel转换代码中保留动态导入?

这是因为默认情况下,
@babel/preset env
包含一个插件,
@babel/plugin proposition dynamic import
,用于转换动态导入

有两种方法可以阻止这种情况

备选方案一(建议) 您可以排除插件
@babel/plugin提案动态导入
,这样
import()
语句保持不变。使用以下内容更新预设选项:

{
  "presets": [["@babel/preset-env", { "exclude": ["proposal-dynamic-import"] }]]
}
选择二 在预设选项中添加
“模块”:false
,但这也将保留ES模块导入/导出语句

{
  "presets": [["@babel/preset-env", { "modules": false }]]
}

这些GitHub问题对此进行了深入描述: