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便能解决问题

相关内容

热门资讯

复刻贵州馆子味!家常泡椒炒牛肉... 贵州泡椒炒牛肉是一道充满地方特色的家常菜,它以鲜嫩的牛肉和酸辣开胃的泡椒为主要食材,成菜香气扑鼻,口...
黔寨风味“黄金派”:外酥内糯,... 在贵州连绵的群山与缭绕的云雾间,散落着许多古老村寨。这里不仅保留着深厚的民族传统,更隐藏着无数令人惊...
大妈教你东北芥菜疙瘩的腌制方法... 眼下正是腌菜的好时节,每年这个时候,我总会想起东北大娘腌的芥菜疙瘩,那味道堪称一绝。她的做法特别简单...
原创 一... 家人们谁懂啊!黑椒牛肉配杏鲍菇真的是神仙组合!软嫩多汁的牛肉裹着浓郁的黑椒酱汁,杏鲍菇吸饱了肉香变得...