大纲

Webpack原理与实践-lagou.png

模块解析过程

image.png

  • 通过entry找到webpack打包的入口文件
  • 解析入口模块,调用注册的Loader解析该模块,如果该模块中有依赖别的模块,继续递归分析,直到所有的依赖文件都经过了Loader解析。
  • 经过上一步之后,我们会生成一个graph图,里面包含了各个模块之间的依赖关系
  • 最后根据output里面的配置的输出配置,对最终的产物进行文件输出

Entry

webpack打包的入口配置,从该配置的中所配置的文件(模块)开始构建整个依赖关系图,webpack通过这些依赖关系去加载各个依赖模块,最后生成一个bundle文件输出

Output

告诉webpack打包生成之后的bundle文件应该存放在什么位置,以及命名规则是怎样的

Module

webpack中每一个文件即是一个模块

Chunk

由多个模块何必生成一个Chunk,用于代码分割

Loader

作用:webpack只能解析JS模块,对于其他类型的模块无能为力,所以使用Loader将其他文件类型转换成JS模块。从而完成整个项目的模块化
手写一个简单的loader

Plugin

作用:解决项目中除了资源模块打包以外的其他自动化操作,增强webpack在构建项目自动化方面的能力