javascript – webpack require.ensure第一个参数使用

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,}]);
});

两者都有效.那么第一个参数的用途是什么?

文档中还有一个require.include函数,我不了解这个函数的用例.任何人都可以解释一下吗?

解决方法

这些函数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可用于确保捆绑模块,即使它不是必需的.通常,如果不需要模块,则根本不会捆绑它.这可以用来强制它包含模块,即使它不在包本身中.

相关文章

什么是深拷贝与浅拷贝?深拷贝与浅拷贝是js中处理对象或数据...
前言 今天复习了一些前端算法题,写到一两道比较有意思的题:...
最近在看回JavaScript的面试题,this 指向问题是入坑前端必须...
js如何实现弹出form提交表单?(图文+视频)
js怎么获取复选框选中的值
js如何实现倒计时跳转页面