理解Chunks
Chunks类型
entry chunks:webpack运行时候和模块加载的入口文件normal chunks:除了entry chunks外,使用过程中动态加载的内容,例如jsonpinitial chunks:通过CommonsChunkPlugin生成的相关文件
entry chunks之前已经涉及不再深究,下面介绍的是normal chunks(懒加载)的主要应用。
webpack的强大之处在于,能够拆分应用代码成更小的文件,实现动态加载。
通过lunr实例介绍懒加载
lunr是一个前端实现全文检索的插件,以下为实现代码
webpack检测
require.ensure,然后拆分被依赖的文件,这种方式同样适用于路由,在用户点击相应路由后,开始加载相应的内容。通过require.ensure也可以是先滚动加载等。
webpack的动态加载
除了require.ensure还有一个配置项需要知道require.context,它允许require进在编译时候不确定的内容。这种技术应用在生成静态,测试时候。
例如静态网站构建:(markdown内容在pages下)
// 通过加载器处理页面,此时markdown还没有,此时加载会在有md文件时候处理const req = require.context('json!yaml-frontmatter!./pages',true, // Load files recursively. Pass false to skip recursion./^\.\/.*\.md$/ // Match files ending with .md.);
实际应用项目Antwar,静态网站生成器
