一、 静态资源的 loader
1、file-loader 的作用是什么?基本用法是什么?
- file-loader 的作用就是帮助我们处理
import/require()方式
引入的一个文件资源,并且会将它们放到我们输出的文件夹
中
![](https://img.haomeiwen.com/i13946897/2d954d56989eb3de.png)
image.png
![](https://img.haomeiwen.com/i13946897/864304b1a9a3db25.png)
image.png
![](https://img.haomeiwen.com/i13946897/d907d24a409528d1.png)
image.png
![](https://img.haomeiwen.com/i13946897/fb2d4b08fc3f4039.png)
image.png
![](https://img.haomeiwen.com/i13946897/30db6bfed1836ae6.png)
image.png
2、下面加载图片资源的方式能成功吗?
// 设置 img 元素的 src
const imgEl = document.createElement('img');
imgEl.src = "../img/zznh.png";
document.body.appendChild(imgEl);
import zzhnImage from '../img/zznh.png';
// 设置 img 元素的 src
const imgEl = document.createElement('img');
imgEl.src = zzhnImage;
document.body.appendChild(imgEl);
3、url-loader 对比 file-loader 有什么异同?
- 同:都是对文件资源进行打包,url-loader 和 file-loader 工作方式相似
- 异:url-loader 可以将较小的文件,转成 base64 的 URI
![](https://img.haomeiwen.com/i13946897/29f8998ec459aaf7.png)
image.png
![](https://img.haomeiwen.com/i13946897/9bbef5e6fbe53b36.png)
image.png
4、什么是 asset module type?
-
asset module type
是 webpack 内置的 loader,用于替代 file-loader、url-loader;
![](https://img.haomeiwen.com/i13946897/fdc69d0c226658e0.png)
image.png
![](https://img.haomeiwen.com/i13946897/829c546652c3b5ee.png)
image.png
![](https://img.haomeiwen.com/i13946897/209d1308aff070b9.png)
image.png
5、如果我们需要加载字体文件要怎么做?
![](https://img.haomeiwen.com/i13946897/650beed2eede4376.png)
image.png
![](https://img.haomeiwen.com/i13946897/5ad2fc71592ada1c.png)
image.png
二、webpack 的 Plugin
1、loader 和 plugin 有什么区别?
- Loader 是用于
特定的模块类型
进行转换;
- Plugin 可以用于
执行更加广泛的任务
,比如打包优化、资源管理、环境变量注入等等;
![](https://img.haomeiwen.com/i13946897/ef6938646e53726a.png)
image.png
2、认识 CleanWebpackPlugin 插件?
![](https://img.haomeiwen.com/i13946897/b069567ebb744e3a.png)
image.png
3、认识 HtmlWebpackPlugin 插件?认识 DefinePlugin 插件?
![](https://img.haomeiwen.com/i13946897/17c16029312dfd92.png)
image.png
![](https://img.haomeiwen.com/i13946897/dc4ad470177f3d98.png)
image.png
![](https://img.haomeiwen.com/i13946897/c1c3c7444026d0a0.png)
image.png
![](https://img.haomeiwen.com/i13946897/eba17176879ef89c.png)
image.png
![](https://img.haomeiwen.com/i13946897/9df9d84e2cb97f90.png)
image.png
4、认识 CopyWebpackPlugin
- 在 vue 的打包过程中,如果我们将一些文件
放到 public 的目录
下,那么这个目录会被复制到 dist 文件夹
中
![](https://img.haomeiwen.com/i13946897/c38a3f76d5cddc9a.png)
image.png
5、认识 mode 配置,便于 debug 调试代码
// 模拟代码报错
console.log(content.aaa);
![](https://img.haomeiwen.com/i13946897/74f1fc78e1b981fe.png)
报错,无法定位
- 在 webpack.config.js 配置
开发模式
,就可以定点到错误代码了。
// webpack.config.js
module.exports = {
// 设置模式
// development 开发阶段,会设置 development
// production 准备打包上线的时候,设置 production
mode: "development",
// 设置 source-map,建立 js 映射文件,方便调试代码和错误
devtool: "source-map",
}
![](https://img.haomeiwen.com/i13946897/e86106e7171efe40.png)
成功定位到错误代码出错的源文件
![](https://img.haomeiwen.com/i13946897/11b0efeaa82f8bba.png)
image.png
![](https://img.haomeiwen.com/i13946897/e8e54215a695ba5e.png)
image.png
网友评论