webpack的要求是如何工作的?

时间:2016-09-27 17:30:21

标签: javascript webpack

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数组为空。

所以我的问题是:

  1. 我必须指定两次模块吗?一次作为require.ensure的第一个参数并再次在回调中?指定或省略第一个arg之间是否存在差异?

  2. 回调给了我一个新的require函数,但我们已经有了一个全局函数。本地和全球之间有区别吗? webpack甚至可以区分它们,因为它必须静态地执行此操作吗?

1 个答案:

答案 0 :(得分:1)

Webpack现在supports import(),使用起来更方便。 require.ensure仍然支持,所以回到你的问题:

  1. 您不必两次指定模块。 Webpack静态解析源代码,并将回调函数体模块中第一个参数数组所有require d中提到的所有模块添加到一个不同的块

  2. 实际上没有使用传递给callback的函数,您应该始终使用全局require。这是我在官方网站documentation上注意到的奇特行为。