1. 基础概念
可以看做是模块打包工具:它将各种静态资源(比如:js 文件,图片文件,样式文件等)视为模块,它能够对这些模块进行解析优化和转换等操作,最后将它们打包在一起,打包后的文件可用于在浏览器中使用。
2. 核心概念
-
chunk 值代码块,一个chunk可能由多个模块组合而成,也用于代码合并与分割。
-
bundle 资源经过webpack流程解析编译后最终输出的成果文件。
-
entry 入口起点,用来告诉webpack用哪个文件作为构建依赖图的起点。webpack会根据entry递归的去寻找依赖,每个依赖都将被它处理。最后输出到打包成果中。
-
output output配置描述了webpack打包的输出配置,包含输出文件的命名、位置等信息。
-
loader 默认情况下,webpack仅支持.js .json文件,通过loader,可以让它解析其他类型的文件,充当翻译官的角色。理论上只要有相应的loader,就可以处理任何类型的文件。
-
plugin loader主要的职责是让webpack认识更多的文件类型,而plugin的职责则是让其可以控制构建流程,从而执行一些特殊的任务。插件的功能非常强大,可以完成各种各样的任务。
-
mode 4.0开始,webpack支持零配置,旨在为开发人员减少上手难度,同时加入了mode的概念,用于指定打包的目标环境,以便在打包的过程中启用webpack针对不同的环境下内置的优化。