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: “”},“”便是一个双字节字符,导致出现乱码。

解决办法
1、dart-sass替换成node-sass
2、使用dart-sass,结合使用npm库的:
https://github.com/styzhang/css-unicode-loader
具体方式:
1、yarn add css-unicode-loader --dev
2、vue.config.js配置

module.exports = {
  configureWebpack: config => {
    const sassLoader = require.resolve('sass-loader');
    config.module.rules.filter(rule => {
      return rule.test.toString().indexOf("scss") !== -1;
    })
    .forEach(rule => {
       rule.oneOf.forEach(oneOfRule => {
         const sassLoaderIndex = oneOfRule.use.findIndex(item => item.loader === sassLoader);
         oneOfRule.use.splice(sassLoaderIndex, 0,
             { loader: require.resolve("css-unicode-loader") });
       });
     });
   }
   //下面的css配置可以无
   css: {
       loaderOptions: {
           sass: {
               sassOptions: {
                   javascriptEnabled: true
               }
           }
       }
   }
}

完成后执行打包命令,打包文件dist/css/app.xxxx,
查看是否是icon是否正常编码,下面展示为正常,不正常–下面圈起来的就是空的或者乱码
![在这里插入图片描述](https://img-blog.csdnimg.cn/788e29c0eb6947f7b35d37f5b16be5a0.png

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值