核心思想:一切皆模块;按需加载
一.webpack 打包过程
1.从入口文件开始分析应用的依赖树
2.将每个依赖模块包装起来放到一个数组中等待调用
3.把执行入口文件的逻辑放到一个立即执行函数中执行
二.loader 与 plugin
1.loader
loader是文件加载器,能够加载资源文件,并对这些文件进行编译、处理,最终一起打包到指定的文件中(比如.vue,.jsx.css文件。比如装换ES6到ES5)
2.plugin
plugin是扩展器,它是基于事件机制工作,会监听webpack打包过程中的某些事件节点,执行任务(比如打包完成后压缩代码,比如热更新)
三.webpack性能优化
1.打包结果优化(空间)
①减少打包体积,去除无用代码 ②代码压缩
2.构建过程优化(时间)
①happypack多线程处理文件 ②进行增量构建,缓存处理过的文件