我一直在尝试使用 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/