webpack是一个模块化打包器,要理解webpack,必须知道的以下内容:loader、plugin、compiler、compilation、tapable

loader

用于编译处理模块

plugin

通过定义钩子钩入整个打包过程的一些特定时间点,在对应的时间点对打包动作做一些处理

compiler

继承自tapable;管理整个编译过程,提供了很多钩子

compilation

继承自tapable;处理主要的编译流程,如依赖分析、用loader处理对应模块、优化压缩、生成文件

tapable

webpack专门开发出来用于定义钩子的类,compiler、compilation都继承自此类

编译过程

image.png

扩展

  1. webpack的tree shaking是如何实现的?
  2. HMR是如何实现的?

jm365
48 声望4 粉丝

web前端开发一枚,以简单明了的方式记录技术方法