关于webpack代码分割功能

require.ensure(["module-a", "module-b"], function(require) {
    var a = require("module-a");
    // ...
});

API
require.ensure(dependencies, callback)
这里的dependencies意义何在?
module-a如果依赖module-b,也会在module-a的组件代码中声明依赖啊。

阅读 4.8k
3 个回答

这里 dependencies 指的是你当前的模块依赖 module-a 和 module-b,module-a 和 module-b 之间并没有依赖关系,如果 module-a 依赖 module-b,那么你只需要 require module-a,webpack 会自动帮你完成 module-a 和 module-b 的打包加载。

意义你自己不都说了么,module-amodule-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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进