webpack 的核心概念和构建流程 - 子舒的博客
- 内容介绍
- 文章标签
- 相关推荐
问题描述:
1.webpack 的核心概念
- entry(入口):一个可执行模块或者库的入口。定义了打包后的入口文件。
- output(出口):指示 webpack 如何去输出,以及在哪里输出。 path: 打包文件存放的绝对路径 publicPath: 网站运行时的访问路径 filename: 打包后的文件名
- module(模块):在 webpack 里,一切皆模块,一个模块对应一个文件。webpack 会从配置的 entry 中开始递归找出所有依赖的模块。
- chunk(代码块):一个
chunk由多个模块组合而成。可以将可执行的模块和他所依赖的模块组合成一个 chunk,这就是打包。 - loader(模块转换器):用于把一个模块原内容按照需求转换成新的内容。例如:es6 转换为 es5,scss 转换为 css 等。
- plugin(扩展):扩展 webpack 功能的插件。在 webpack 构建的生命周期节点上加入扩展 hook,添加功能。
2.webpack 构建流程
- 初始化参数:解析 webpack 的配置参数,合并 shell 传入和 webpack.config.js 文件配置的参数,形成最后的配置结果。
- 开始编译:上一步得到的参数初始化 compiler 对象,注册所有配置的插件,插件监听 webpack 构建生命周期的事件节点,做出相应的反应,执行对象的 run 方法开始执行编译。
- 确定入口:其配置的 entry 入口,开始解析文件构建的 AST 语法树,找出依赖,递归下去。
问题描述:
1.webpack 的核心概念
- entry(入口):一个可执行模块或者库的入口。定义了打包后的入口文件。
- output(出口):指示 webpack 如何去输出,以及在哪里输出。 path: 打包文件存放的绝对路径 publicPath: 网站运行时的访问路径 filename: 打包后的文件名
- module(模块):在 webpack 里,一切皆模块,一个模块对应一个文件。webpack 会从配置的 entry 中开始递归找出所有依赖的模块。
- chunk(代码块):一个
chunk由多个模块组合而成。可以将可执行的模块和他所依赖的模块组合成一个 chunk,这就是打包。 - loader(模块转换器):用于把一个模块原内容按照需求转换成新的内容。例如:es6 转换为 es5,scss 转换为 css 等。
- plugin(扩展):扩展 webpack 功能的插件。在 webpack 构建的生命周期节点上加入扩展 hook,添加功能。
2.webpack 构建流程
- 初始化参数:解析 webpack 的配置参数,合并 shell 传入和 webpack.config.js 文件配置的参数,形成最后的配置结果。
- 开始编译:上一步得到的参数初始化 compiler 对象,注册所有配置的插件,插件监听 webpack 构建生命周期的事件节点,做出相应的反应,执行对象的 run 方法开始执行编译。
- 确定入口:其配置的 entry 入口,开始解析文件构建的 AST 语法树,找出依赖,递归下去。

