vue-cli 3中dart-sass替换node-sass,element ui icon图标乱码问题
admin
2024-02-24 08:36:28

现在dart-sass是未来的主流,所以近期把一个老项目node-sass 替换成 dart-sass

但是却发现另一个问题,icon图标竟然偶尔出现乱码问题

sass编译unicode图标出现问题

分析了一下这个问题出现的原因,如果一般使用不会出现这个问题,因为一般引入的是element-ui的css文件

但是为了实现主题色变化,需要用到scss变量引入了scss文件

@import "~element-ui/packages/theme-chalk/src/index";

dart-sass在编译element-ui里icon伪元素的content unicode编码时会转换成对应unicode明文。

所以通过伪元素来展示的图标如el-icon-edit:before{ content: “\e878”},编译之后就变成了el-icon-edit:before{ content: “”},“”便是一个双字节字符,导致出现乱码

/* 编译前 */
.el-icon-edit{content:'\e878'}/* 编译后 */
.el-icon-edit{content:""}/*# sourceMappingURL=index.css.map */

解决方法

module.exports = {css: {loaderOptions: {sass: {sassOptions: {// 生效代码outputStyle: 'expanded'}	}}}
}

sass的默认输出格式为expanded,编译时不会转换unicode字符。

sassLoader修改了sass默认输出格式为compressed

因此我们在配置sassLoader时将输出格式重新改为expanded便能解决问题

相关内容

热门资讯

穿越天山遇见四季童话:新疆深度... 穿越天山遇见四季童话:新疆深度旅行指南与秘境故事 序章:一封来自西域的情书 每年六月,当伊犁河谷的薰...
从戈壁到花海:一位新疆本地向导... 从戈壁到花海:一位新疆本地向导的四季旅行手记 在新疆生活了近二十年,我依然记得第一次被这片土地震撼的...
穿越军 - 穿越中国亲子挑战赛... 以前总带孩子去各地旅游,打卡景点、吃美食,回来之后孩子除了照片,什么都没留下,直到带他参加穿越军亲子...
2026最新山东旅行社综合实力... 随着 2026 年旅游市场持续升温,山东凭借 "一山一水一圣人" 的独特魅力和丰富的文旅资源,成为国...
二十年,再赴大熊山 人间忽晚,山河已秋。一别大熊山,已是整整二十载。 那时我匆匆登临,步履轻快,眼里只有山川壮阔、林木葱...