element-ui打包后字体图乱码解决方法

456 阅读1分钟

element-ui打包后字体图乱码解决方法

banner.jpeg

前言

最近在项目中遇到了一个之前一直没遇到过的bug,项目打包部署后element-ui字体图标会随机出现乱码bug,刷新项目后就会正常,之前一直以为是网络异常,后面排查后才发现不是网络的问题,是因为项目是基于若依ruoyi框架搭建的,ruoyi框架内置的CSS扩展语言是sass,而element-ui官方使用的是node-sass,所以导致了字体图标乱码bug的出现。

正常图标和乱码图标对比

正常图标:

ok-icon.jpg

乱码图标:

err-icon.jpg

bug产生原因

由于项目是基于ruoyi框架搭建,ruoyi内置CSS扩展语言是sass,而element-ui官方使用的是node-sass,所以导致了字体图标乱码bug的出现。

项目使用sass:

sass.jpg

element-ui使用node-sass:

element-sass.jpg

如下图所示,项目使用sass打包后的字体图标css样式已经是乱码

bad.jpg

解决办法

卸载sass,安装node-sass,方法如下:

// 卸载sass
npm uninstall sass
// 安装node-saa
npm install node-sass -D

注意:npm 安装 node-sass 时,会从 github 上下载 .node 文件。而由于 github 是国外网站,所以在国内下载时间可能会很长,很容易导致超时失败。解决办法可以参照帖子最后的参考内容《node-sass 安装失败的原因及解决办法》。

bug解决后效果

如图所示,项目里的字体图标已经正常

ok-icon.jpg

如图所示,打包后的字体图标css样式也已经正常

good.jpg

参考