从docs,你可以这样做:
require.ensure(["module-a", "module-b"], function(require) {
var a = require("module-a");
// ...
});
在您require.ensure
之前, require()
不评估模块。后来,他们举了另一个例子,
require.ensure([], function(require) {
let contacts = require('./contacts')
});
Ensure数组为空。
所以我的问题是:
我必须指定两次模块吗?一次作为require.ensure
的第一个参数并再次在回调中?指定或省略第一个arg之间是否存在差异?
回调给了我一个新的require
函数,但我们已经有了一个全局函数。本地和全球之间有区别吗? webpack甚至可以区分它们,因为它必须静态地执行此操作吗?
答案 0 :(得分:1)
Webpack现在supports import()
,使用起来更方便。 require.ensure
仍然支持,所以回到你的问题:
您不必两次指定模块。 Webpack静态解析源代码,并将回调函数体模块中第一个参数数组和所有require
d中提到的所有模块添加到一个不同的块
实际上没有使用传递给callback
的函数,您应该始终使用全局require
。这是我在官方网站documentation上注意到的奇特行为。