通过安装和配置第三方的插件,可以拓展 webpack 的能力,从而让 webpack 用起来更方便。最常用的webpack 插件有如下两个:
① webpack-dev-server
② html-webpack-plugin
【作用】
webpack-dev-server 可以让 webpack 监听项目源代码的变化,从而进行自动打包构建。
【安装】
npm install webpack-dev-server@3.11.2 -D
【配置webpack-dev-server】

webpack-dev-server 会启动一个实时打包的 http 服务器
【打包生成的文件】
① 不配置 webpack-dev-server 的情况下,webpack 打包生成的文件,会存放到实际的物理磁盘上
② 配置了 webpack-dev-server 之后,打包生成的文件存放到了内存中
【生成到内存中的文件该如何访问】
webpack-dev-server 生成到内存中的文件,默认放到了项目的根目录中,而且是虚拟的、不可见的。
html-webpack-plugin 是 webpack 中的 HTML 插件,可以通过此插件自定制 index.html 页面的内容。
需求:通过 html-webpack-plugin 插件,将 src 目录下的 index.html 首页,复制到项目根目录中一份
【安装】
npm install html-webpack-plugin@5.3.2 -D
【配置】

【其他】
① 通过 HTML 插件复制到项目根目录中的 index.html 页面,也被放到了内存中
② HTML 插件在生成的 index.html 页面,自动注入了打包的 bundle.js 文件
在 webpack.config.js 配置文件中,可以通过 devServer 节点对 webpack-dev-server 插件进行更多的配置

凡是修改了 webpack.config.js 配置文件,或修改了 package.json 配置文件,必须重启实时打包的服务器,否则最新的配置文件无法生效
在实际开发过程中,webpack 默认只能打包处理以 .js 后缀名结尾的模块。其他非 .js 后缀名结尾的模块,webpack 默认处理不了,需要调用 loader 加载器才可以正常打包,否则会报错。
loader 加载器的作用:协助 webpack 打包处理特定的文件模块。比如:


① 运行 npm i less-loader@10.0.1 less@4.1.1 -D 命令
② 在 webpack.config.js 的 module -> rules 数组中,添加 loader 规则如下

① 运行 npm i url-loader@4.1.1 file-loader@6.2.0 -D 命令
② 在 webpack.config.js 的 module -> rules 数组中,添加 loader 规则如下:

其中 ? 之后的是 loader 的参数项:
webpack 只能打包处理一部分高级的 JavaScript 语法。对于那些 webpack 无法处理的高级 js 语法,需要借助于 babel-loader 进行打包处理。
【安装 babel-loader 相关的包】
npm i babel-loader@8.2.2 @babel/core@7.14.6 @babel/plugin-proposal-decorators@7.14.5 -D
添加loader规则

【配置babel-loader】
在项目根目录下,创建名为 babel.config.js 的配置文件,定义 Babel 的配置项如下

in-proposal-decorators@7.14.5 -D
添加loader规则
[外链图片转存中...(img-QcgY1WrC-1662685005676)]
【配置babel-loader】
在项目根目录下,创建名为 babel.config.js 的配置文件,定义 Babel 的配置项如下
[外链图片转存中...(img-HWuYMGvH-1662685005676)]