webpack是一个模块化打包器,要理解webpack,必须知道的以下内容:loader、plugin、compiler、compilation、tapable
loader
用于编译处理模块
plugin
通过定义钩子钩入整个打包过程的一些特定时间点,在对应的时间点对打包动作做一些处理
compiler
继承自tapable;管理整个编译过程,提供了很多钩子
compilation
继承自tapable;处理主要的编译流程,如依赖分析、用loader处理对应模块、优化压缩、生成文件
tapable
webpack专门开发出来用于定义钩子的类,compiler、compilation都继承自此类
编译过程
扩展
- webpack的tree shaking是如何实现的?
- HMR是如何实现的?
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。