为什么要费心 CommonJS require.ensure() 中的依赖项列表?

2024-05-02

来自 Webpack 文档(https://webpack.github.io/docs/api-in-modules.html#require-ensure https://webpack.github.io/docs/api-in-modules.html#require-ensure):

根据需要下载其他依赖项。依赖项数组列出了应该可用的模块。当它们存在时,回调被调用。如果回调是函数表达式,则提取该源部分中的依赖项并按需加载。除非所有模块都可用,否则将向服务器发出单个请求。

如果源部分中的依赖项也可以按需提取和加载,那么为什么还要在依赖项列表中添加任何内容呢?

我见过这样的例子,非常令人困惑(https://github.com/webpack/webpack/tree/master/examples/extra-async-chunk https://github.com/webpack/webpack/tree/master/examples/extra-async-chunk):

require.ensure(["./a"], function(require) {
    require("./b");
    require("./d");
});

“b”和“d”不在依赖项列表中,但会像“a”一样按需加载。那么有什么区别呢?


您链接到的文档中的示例显示了行为不同的一种方式。当您指定依赖项时,它会显式创建一个新块,将依赖项放入其中,并添加回调中引用的任何其他依赖项。当您不指定依赖项时,回调中的任何依赖项都会添加到“当前”(最后一个?)块,不会创建新块。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么要费心 CommonJS require.ensure() 中的依赖项列表? 的相关文章

随机推荐