当前位置: 首页 > news >正文

vue: 线上项目element-ui的icon偶尔乱码问题

线上环境偶尔会复现,
具体:

一般使用不会出现这个问题,因为一般引入的是element-ui的css文件,问题出在于为了主题色变化啊,需要用到scss变量引入了scss文件。

@import “~element-ui/packages/theme-chalk/src/index”;
而dart-sass在编译element-ui里icon伪元素的content unicode编码时会转换成对应unicode明文,所以通过伪元素来展示的图标如el-icon-arrow:before{ content: “\e6df”},编译之后就变成了el-icon-arrow:before{ content: “”},“”便是一个双字节字符,导致出现乱码。

解决办法

网上搜了下,很多人遇到这个问题,偶现发生,一般刷新下页面又好了,解决方式主要有3个:

  • 由 dart-sass 改回 node-sass
  • 自己额外引入 element-ui 的图标 css 文件
  • sass 版本更新到 1.39.0,并且修改 vue.config.js 配置文件的 css.loaderOptions.sass.sassOptions.outputStyle 为 expanded

权衡之下选择了最优雅的最后一种,不过并没有去更改 sass 和 sass-loader 的版本,只修改了 outputStyle 配置,这个不设置默认会是 compressed:

修改后的 vue.config.js 配置文件: 

module.exports = {transpileDependencies: ['element-ui'],css: {loaderOptions: {scss: {additionalData: `@import "@/styles/var.scss";`, // 不同版本的 sass,此属性不同:data、prependData、additionalDatasassOptions: { outputStyle: 'expanded' } // fix: 解决 element-ui 图标 icon 偶现乱码问题}}},devServer: {proxy: {'/api': {target: 'http://dev.xxx.com',changeOrigin: true},}}
}

注意很多人分享的都是去设置 sass.sassOptions.outputStyle,如果你的项目中页面都是用的 scss,那这个地方是要去设置 scss.sassOptions.outputStyle 才有效的。

sass 和 scss 其实是同一种东西,我们平时都称之为 sass,scss 是 sass 3 引入新的语法,说白了 scss 就是 sass 的升级版。

dart-sass 只支持两种输出格式outputStyle:

  • expanded:输出跟我们平时开发中手写的css样式很像,选择器、属性等各占一行,属性根据选择器缩进,而选择器不做任何缩进
  • compressed:输出方式删除所有无意义的空格、空白行、以及注释,将文件体积压缩到最小,同时也会做出其他调整,比如会自动替换占用空间最小的颜色表达方式

修改后重新编译部署发现源码和浏览器中加载的样式都没问题了:

 

http://www.lryc.cn/news/252051.html

相关文章:

  • fpga rom 初始化文件的一些心得
  • 从零构建属于自己的GPT系列3:模型训练2(训练函数解读、模型训练函数解读、代码逐行解读)
  • Python词频统计(数据整理)
  • 基本面选股的方法
  • 应用密码学期末复习(3)
  • PAD平板签约投屏-高端活动的选择
  • 分布式架构demo
  • TA-Lib学习研究笔记(二)——Overlap Studies上
  • 牛客java基础考点1 标识符和变量
  • Qt将打印信息输出到文件
  • 【risc-v】易灵思efinix FPGA sapphire_soc IP配置参数分享
  • 直播的种类及类型
  • 时间序列数据压缩算法简述
  • 智能锁-SI522TORC522方案资料
  • redux(4) -RTK简单使用
  • 开源运维监控系统-Nightingale(夜莺)应用实践(未完)
  • 深入理解GMP模型
  • 数学建模-基于集成学习的共享单车异常检测的研究
  • C语言-内存分配
  • 算法工程师-机器学习面试题总结(1)
  • 【蓝桥杯选拔赛真题73】Scratch烟花特效 少儿编程scratch图形化编程 蓝桥杯创意编程选拔赛真题解析
  • Juniper EX系列交换机端口配置操作
  • 2.1 Linux C 编程
  • 服务器数据恢复—ocfs2文件系统被格式化为其他文件系统如何恢复数据?
  • 海云安参与制定《信息安全技术 移动互联网应用程序(App)软件开发工具包(SDK)安全要求》标准正式发布
  • 如何调用 API | 学习笔记
  • 关于云备份项目的HTTP协议字段理解
  • 掉落的俄罗斯方块
  • 医院不良事件报告系统源码带鱼骨图分析
  • 数据库相关算法题 V3