webpack4系列教程,如何配置使用字体文件?
发布于 作者:苏南大叔 来源:程序如此灵动~

webpack
系列教程,如何配置使用字体文件? 网页上的字体文件,在国内,一般来说是图标字体iconfont
。当然了,在国外,也会有大量的谷歌字体存在。而且,这些谷歌字体都是以url
形式存在的,这并不是本文讨论的内容。本文中,苏南大叔讨论的是:以文件形式存在的普通字体,即:eot
、woff
、woff2
、ttf
、svg
这些文件。

本文测试环境:win10
、node@14.2.0
、npm@6.14.4
、webpack@4.43.0
、url-loader@4.1.0
。特约出镜的是:阿里矢量图标库iconfont.cn
。
矢量图标字体
因为要研究webpack
如何处理字体文件,所以,这里苏南大叔,选用了阿里矢量图标库。链接见下方:
然后选取了一款名为"采浊工"的字体,下载到本地待用。
然后,就有了本文中的目标文件,如下图所示:

这里,还是使用url-loader
这个万能的loader
,来做字体文件的处理。不过,在本文中,苏南大叔想展示两种配置方法。作为对url-loader
的选项的进一步理解。两个配置,效果一致。但是,各有千秋。大家可以自行斟酌。
配置文件一
配置文件二
两个配置的区别
区别还是在于目标路径fonts
目录,到底写在哪里。
- 第一种写法,把
path
写在name
里面。这种情况下,在苏南大叔的实验中,无需配置publicPath
和outputPath
。路径是自动修正的。 - 第二种写法,把
path
不写到name
里面,分别设置到publicPath
和outputPath
,这种情况下,outputPath
是负责告诉webpack
,文件输出的位置。而publicPath
是设置,在页面代码中,如何找到相应的字体文件。

测试代码
index.html
:
iconfont.css
:
main.js
里面引入iconfont.css
,传统方式引用的话,字体是不会被正常处理的哦~
测试结果:

可能存在的问题
在实际的部署过程中,可能会存在nginx
不能识别svg
字体的情况,可以参考下面的链接解决问题:
这里就举例更为常见的nginx
的情况,参考配置:mime.conf
:
vhost.conf
:
相关链接
总结
字体文件,作为网页成员的重要组成部分。在webpack
中,就是这么被url-loader
所处理的。好的,本文就说这么多,如果把本文中的字体文件,想象成css
中的背景图片引用的话,其实,本文还是挺好理解的。
更多webpack
的经验文字,请点击苏南大叔的博客:


