在项目中基本上所有的图片都能用 url-loader 转换成 base64,但是有种特殊的图片不能转换成 base64,那就是 icon,这种 icon 一般都是通过字体引入的,如下:
获取 icon 库
这边我们就用 阿里巴巴矢量图标库
在图标库中找到我的项目,如下:
选择我发起的项目或者我参与的项目,如下:
这边我已经添加了几个图标了。接下来就是下载到本地,如下:
下载完成之后,得到以下一个压缩包,将这些文件移到项目中即可。
项目中引入 icon
从 iconfont 下载的文件放到项目中,我放到了 ./src/iconfont/ 这个路径中:
webpack 配置
webpack 4
在4 中对于字体文件需要用 file-loader。不能用 url-loader 转化为 base64。如下:
module.exports = {
//...
module: {
rules: [
{
test: /\.(ttf|woff|woff2|eot|svg)$/,
use: 'file-loader'
}
]
}
//...
}
webpack 5
在 5 中不需要配置字体文件的打包,在本事例中使用的是 5 ,所以打包结果也是5的。
代码中如何使用
有一个固定的类名 iconfont,再加上 icon 的名字,如 icon-pingguo。如下
/** ./src/index.js **/
import style from './iconfont/iconfont.css';
let i = document.createElement('i');
i.className = `${style['iconfont']} ${style['icon-pingguo']}`;
document.body.appendChild(i);
打包结果
页面结果
成功显示图标。