require.ensure(["module-a", "module-b"], function(require) {
var a = require("module-a");
// ...
});
APIrequire.ensure(dependencies, callback)
这里的dependencies
意义何在?module-a
如果依赖module-b
,也会在module-a
的组件代码中声明依赖啊。
意义你自己不都说了么,module-a
和module-b
以及他们各自的依赖,会以这两个模块为起始点,分割出两个代码块。
这不就是你要的么?
这里 dependencies 指的是你当前的模块依赖 module-a 和 module-b,module-a 和 module-b 之间并没有依赖关系,如果 module-a 依赖 module-b,那么你只需要 require module-a,webpack 会自动帮你完成 module-a 和 module-b 的打包加载。
requi.ensure的模块只会被下载下来,不会被执行,只有在回调函数使用require(模块名)后,这个模块才会被执行。
其实官网有备注: Note: require.ensure only loads the modules, it doesn’t evaluate them.
evaluate
有评价评估的意思。当初的理解是ensure只加载模块,但并不对这些模块进行一些处理
。
相关资料:
http://webpack.github.io/docs/code-splitting.html
http://blog.csdn.net/zhbhun/article/details/46826129
http://www.cnblogs.com/E-WALKER/p/4770063.html