webpack的第一个参数有什么用途require.ensure第一个参数?
https://webpack.github.io/docs/code-splitting.html
require.ensure(dependencies,callback)
我尝试让第一个参数填充或清空,如:
require.ensure(['./module'],function() { //filled first param require.ensure([],function() { //empty first param let module = require('./module'); $ocLazyLoad.load([{ name: module.default,}]); });
两者都有效.那么第一个参数的用途是什么?
解决方法
这些函数与
Code Splitting有关,它允许代码的某些部分与主代码分开捆绑,并在代码运行时加载并运行.
代码示例1:
require.ensure(['./module'],function() { //filled first param
第一个参数是一个模块数组,用于确保在运行回调之前加载.如果尚未在其中一个bundle中加载./module,它将加载该模块包含在新HTTP请求中的块,然后调用回调函数.
要使用Webpack的示例:
require.ensure(["module-a","module-b"],function(require) { var a = require("module-a"); // ... });
module-a和module-b现在可以拆分成不同的文件,并且回调函数在加载之前不会运行.
代码示例2:
require.ensure([],}]); });
这里require.ensure定义了一个分裂点.由于它在数组中没有任何依赖项,因此它本身不会加载任何模块.但是,回调中的require语句仍将通过webpack的魔力动态加载,而./module将捆绑在一个单独的文件中.
require.include
There is also a require.include function in the documentation which I do not understand the use case of this function. Can anyone explain it too?
require.include可用于确保捆绑模块,即使它不是必需的.通常,如果不需要模块,则根本不会捆绑它.这可以用来强制它包含模块,即使它不在包本身中.