uni-app uni-ui通过配置easycom打包app后uni-icons图标不显示

发布于 1周前 作者 caililin 来自 Uni-App

uni-app uni-ui通过配置easycom打包app后uni-icons图标不显示

操作步骤:

上述代码

预期结果:

希望uni-icons正常显示

实际结果:

uni-icons显示不正常

bug描述:

uni-ui通过配置easycom打包app后uni-icons看不到图标,只显示一个框框,应该是字体没有加载
开发环境正常,自定义基座运行正常,就打包正式版后就不显示icon
easycom的配置:

"easycom": {  
    "autoscan": true,  
    "custom": {  
        "^uni-((?!(shadow-root)).*)": "@dcloudio/uni-ui/lib/uni-$1/uni-$1.vue" //这里排除了uni-shadow-root  
    }  
}

页面使用组件:图标看不到

<uni-icons class="icon" type="locked" size="24" />

如果在easycom排除uni-icons,把uni-icons复制到\components目录下就正常
easycom的配置:

"easycom": {  
    "autoscan": true,  
    "custom": {  
        "^uni-((?!(shadow-root|icons)).*)": "@dcloudio/uni-ui/lib/uni-$1/uni-$1.vue" //这里排除了uni-shadow-root,uni-icons  
    }  
}

开发环境信息

项目 详情
产品分类 uniapp/App
PC开发环境操作系统 Windows
PC开发环境操作系统版本号 win10 64位
HBuilderX类型 正式
HBuilderX版本号 2.9.8
手机系统 Android
手机系统版本号 Android 8.0
手机厂商 华为
手机机型 所有手机
页面类型 vue
打包方式 云端
项目创建方式 HBuilderX

10 回复

同个问题.我也是npm的,也排除了 shadow-root icons真机调试正常,打包后不显示~


同样的问题,我也是npm下的uni组件库,然后通过easycom加载,基座啥的图标都正常显示,打包发布后图标就不显示了。
坑爹。 uni组件库版本1.2.5

我也出现这样的问题,怎么解决?

这个问题,官方难道都不重视吗?

可以把uni-icons也排除掉,然后把uni-icons复制到components目录

我也遇到这个问题,请问大家有解决方法吗

同问题,大家解决了吗

我的按照上面的忽略了,图标还是一个叉叉,怎么整,要崩溃了

同问题,如何解决呢

在处理使用uni-app和uni-ui库通过easycom打包APP后uni-icons图标不显示的问题时,通常这类问题涉及到图标的路径、资源打包配置或者样式冲突等方面。以下是一些可能帮助你解决问题的代码案例和检查步骤,这些步骤基于常见的打包和部署问题:

1. 检查图标路径和引用方式

首先,确保你的项目中正确引入了uni-icons库,并且图标的类名使用无误。以下是一个简单的示例:

<template>
  <view>
    <text class="uni-icon-home"></text>
  </view>
</template>

<style>
@import "~@dcloudio/uni-ui/lib/uni-icons/uni-icons.scss";
</style>

注意:这里使用了SCSS语法来导入图标样式,确保你的构建系统支持SCSS。如果不支持,你可能需要转换为CSS或者相应的预处理步骤。

2. 配置easycom打包选项

检查你的easycom打包配置文件,确保资源文件(包括图标)被正确包含在内。例如,如果你的图标是内嵌在SCSS文件中的,确保SCSS文件被正确处理:

// easycom.config.js
module.exports = {
  // 其他配置...
  webpackChain: (chain) => {
    chain.module.rule('scss')
      .test(/\.scss$/)
      .use('sass-loader')
        .loader('sass-loader')
        .options({
          // 根据需要配置options
        });
  },
  // 确保资源目录被包含
  copy: [
    {
      from: 'static',
      to: 'static',
      toType: 'dir'
    }
  ]
};

3. 检查样式冲突

有时候图标不显示可能是由于样式冲突导致的。检查是否有其他样式覆盖了图标的显示,例如:

.uni-icon-home {
  display: none; /* 确保没有这样的样式 */
}

4. 清理和重建

在进行了上述更改后,确保清理旧的构建缓存并重新构建项目:

# 清理(如果easycom支持此命令)
easycom clean

# 重建
easycom build

5. 测试和调试

最后,在真机或模拟器上测试应用,看图标是否能够正确显示。如果问题依旧,可能需要进一步检查图标的源文件是否损坏或格式不兼容。

通过上述步骤,你应该能够定位并解决uni-icons图标在通过easycom打包后不显示的问题。如果问题仍然存在,可能需要更详细地检查打包日志或寻求uni-app和easycom社区的帮助。

回到顶部