Javascript webpack';我们需要工作吗?

Javascript webpack';我们需要工作吗?,javascript,webpack,Javascript,Webpack,从中,您可以执行以下操作: require.ensure(["module-a", "module-b"], function(require) { var a = require("module-a"); // ... }); require。确保在您require()对模块进行评估之前,不会对模块进行评估。后来又举了一个例子, require.ensure([], function(require) { let contacts = require('./contact

从中,您可以执行以下操作:

require.ensure(["module-a", "module-b"], function(require) {
    var a = require("module-a");
    // ...
});
require。确保在您
require()
对模块进行评估之前,不会对模块进行评估。后来又举了一个例子,

require.ensure([], function(require) {
  let contacts = require('./contacts')
});
其中,确保数组为空

因此,我的问题是:

  • 我必须指定我的模块两次吗?一次作为
    require的第一个参数。确保
    并再次在回调中?指定或省略第一个参数之间有区别吗

  • 回调给了我一个新的
    require
    函数,但我们已经有了一个全局函数。本地的和全球的有区别吗?webpack甚至可以区分它们,因为它必须静态地这样做

  • Webpack now
    import()
    ,使用起来更方便<代码>要求。确保仍支持
    ,因此返回到您的问题:

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

  • 实际上,没有使用传递给
    回调
    的函数,您应该始终使用global
    require
    。这是我在官方网页上注意到的古怪行为


  • “webpack甚至可以区分它们,因为它必须静态地执行此操作吗?”它当然可以知道内部的一个引用回调的参数。我很确定,即使您传递一个空数组,它也可以工作。@flyingSmurfs但有区别吗?webpack只是在空数组中填入所有的内部要求还是什么?是的,正是这样。@FelixKling好的,所以答案是(1)。那么(2)呢?
    import()
    严格来说是不一样的。下载完成后会对脚本进行评估,不是吗?而
    require.assure
    将确保在启动回调之前下载脚本,但在您明确要求之前,不会对脚本进行评估。我不完全确定你什么时候需要这种区别,但它就在那里:-)无论如何,谢谢你回答我的问题!我觉得
    require
    param有点奇怪。是的,没错-
    import()
    ed模块会立即评估,与
    require相反。确保