javascript - webpack 中是否可以有真正动态的 import() ?

标签 javascript webpack dynamic-import

我一直在尝试使用 import() 函数导入运行时动态的内容。我认为只要我为文件创建一个条目,webpack 就可以足够智能地 import() 正确的模块,但情况似乎并非如此。

有谁知道一种方法来分块条目并使用 import() 语法,为其提供一个变量,并让它在运行时工作?

根本问题的一个简单示例如下:

// works
import( './a.js' ).then(() => console.log('it worked'));

// something is a dynamic variable that changes at runtime
const something = './a.js';
// does not work, even with this simplistic example
import( something ).catch(() => console.log('it did not work'));

最佳答案

它不起作用,因为尽管它被称为“动态导入”,但它并不遵循该词的含义。 “动态”导入的想法是能够在运行时动态导入某些内容,但这里需要注意的是:必须知道要导入的模块。

由于 webpack 会进行静态分析来对这些 import() 语句进行延迟加载,因此一切都必须已知且可预测,否则 webpack 将无法即时创建异步 block 。这就是为什么向导入添加变量不起作用的原因。

关于javascript - webpack 中是否可以有真正动态的 import() ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53200116/

相关文章:

javascript - 在 AngularJS 中的三元运算符中使用过滤器

javascript - 忽略了对未接受模块的更新

meteor 1.5 : Dynamic Import for Blaze

javascript - 计算复合对象中数组字段中包含的元素数

javascript - Three.js 3D 模型未显示

javascript - 通过 API 调用的 Google Play 搜索查询的 JSON 输出?

javascript - webpack快速导入规则

webpack - 为什么我的 webpack 在编译 .sass 文件时试图加载 .js 文件?

angular - 如何将类型与动态导入一起使用?

lazy-loading - loadChildren 在 angular8 中被弃用