webpack5.0基础
本文最后更新于:2 年前
第 1 章:webpack 简介
webpack 简介
1.1 webpack
是什么 webpack 是一种前端资源构建工具,一个静态模块打包器(module bundler)。 在 webpack 看来, 前端的所有资源文件(js/json/css/img/less/…)都会作为模块处理。 它将根据模块的依赖关系进行静态分析,打包生成对应的静态资源(bundle)

1.2 webpack 五个核心概念
1.2.1 Entry
入口(Entry)指示 webpack 以哪个文件为入口起点开始打包,分析构建内部依赖图。
1.2.2 Output
输出(Output)指示 webpack 打包后的资源 bundles 输出到哪里去,以及如何命名。
1.2.3 Loader
Loader 让 webpack 能够去处理那些非 JavaScript 文件(webpack 自身只理解
JavaScript)
1.2.4 Plugins
插件(Plugins)可以用于执行范围更广的任务。插件的范围包括,从打包优化和压缩,一直到重新定义环境中的变量等。
1.2.5 Mode
模式(Mode)指示 webpack 使用相应模式的配置。
| 选项 | 描述 | 特点 |
|---|---|---|
| development | 会将 DefinePlugin 中 process.env.NODE_ENV 的值设置为 development。启用 NamedChunksPlugin 和 NamedModulesPlugin。 | 能让代码本地调试运行的环境 |
| production | 会将 DefinePlugin 中 process.env.NODE_ENV 的值设置为 production。启用 FlagDependencyUsagePlugin, FlagIncludedChunksPlugin, ModuleConcatenationPlugin, NoEmitOnErrorsPlugin, OccurrenceOrderPlugin, SideEffectsFlagPlugin 和 TerserPlugin。 | 能让代码优化上线运行的环境 |
第 2 章:webpack 的初体验
2.1 初始化配置
- 初始化 package.json
输入指令:
1 | |
- 下载并安装 webpack
输入指令:
1 | |
1 | |
2.2 编译打包应用
创建文件
运行指令
开发环境指令:
1 | |
功能:webpack 能够编译打包 js 和 json 文件,并且能将 es6 的模块化语法转换成浏览器能识别的语法。
生产环境指令:
1 | |
功能:在开发配置功能上多一个功能,压缩代码。
结论
webpack 能够编译打包 js 和 json 文件。
能将 es6 的模块化语法转换成浏览器能识别的语法。能压缩代码。
问题
不能编译打包 css、img 等文件。
不能将 js 的 es6 基本语法转化为 es5 以下语法。
第 3 章:webpack 开发环境的基本配置
3.1 创建配置文件
创建文件 webpack.config.js
配置内容如下
1 | |
- 运行指令: webpack
- 结论: 此时功能与上节一致
3.2 打包样式资源
- 创建文件

- 下载安装 loader 包
1 | |
- 修改配置文件
1 | |
- 运行指令: webpack
3.3 打包 HTML 资源
- 创建文件
- 下载安装 plugin 包
1 | |
- 修改配置文件
1 | |
- 运行指令: webpack
3.4 打包图片资源
- 创建文件

- 下载安装 loader 包
1 | |
- 修改配置文件
1 | |
- 运行指令: webpack
3.5 打包其他资源
- 创建文件

- 修改配置文件
1 | |
- 运行指令: webpack
3.6 devserver
- 创建文件

- 下载 webpack-dev-server 文件
1 | |
- 修改配置文件
1 | |
- 运行指令: npx webpack server
3.7 开发环境配置
- 创建文件

- 修改配置文件
1 | |
第 4 章:webpack 生产环境的基本配置
4.1 提取 css 成单独文件
- 新建文件

- 下载插件
1 | |
- 修改配置文件
1 | |
4 .运行指令: webpack
4.2 css 兼容性处理
- 创建文件

- 下载 loader 如果 postcss-loader 使用最新版本会报错,降到 3.0.0 就行了
1 | |
- 修改配置文件
1 | |
- 修改 package.json
1 | |

- 下载安装包
1 | |
官方改用另一种,具体配置看官网https://www.npmjs.com/package/css-minimizer-webpack-plugin
1 | |
- 修改配置文件
1 | |
- 运行指令: webpack
4.4 js 语法检查
- 创建文件

- 下载安装包 airbnb-base 官网https://www.npmjs.com/package/eslint-config-airbnb-base
1 | |
- 修改配置文件
1 | |
如果配置每行结尾都报红色警告,将编译器尾行序列 CRLF 换成 LF(我用的 vscode 在编译器右下角可以切换)
- 配置 package.json
1 | |
- 运行指令: webpack
4.5 js 兼容性处理
- 创建文件

- 下载安装包
1 | |
- 修改配置文件
1 | |
- 运行指令: webpack
4.6 js 压缩
- 创建文件

- 修改配置文件
1 | |
- 运行指令: webpack
4.7 HTML 压缩
- 创建文件

- 修改配置文件
1 | |
- 运行指令:webpack
4.8 生产环境配置
- 创建文件

- 修改配置文件
1 | |
- 运行指令: webpack
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!