uni-app Cli Vite Vue 3.0下,引入echart后,无法编译微信小程序

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

uni-app Cli Vite Vue 3.0下,引入echart后,无法编译微信小程序

操作步骤:

  • 引入echarts后
  • 微信小程序编译报错
  • Rollup failed to resolve import “zrender/lib/core/util.js”
  • H5正常

预期结果:

  • 正常显示

实际结果:

  • 报错

bug描述:

  • 引入echarts后
  • 微信小程序编译报错
  • Rollup failed to resolve import “zrender/lib/core/util.js”
  • H5正常

图片

image

项目信息

信息类别
产品分类 uniapp/小程序/微信
PC开发环境 Windows
操作系统版本 win10
开发者工具 vscode
基础库版本 vue3.0 ts vite
项目创建方式 CLI
CLI版本 vue3.0 ts vite

6 回复

目测你再安装zrender就可以了。


大佬,确实是,按需加载的,为啥编译还需要手动在自己工程加这些echart使用的插件?h5都不需要,不理解啊

回复 9***@qq.com: 我也遇到了这个问题,是手动npm install zrender 这样解决吗

怎么解决的这个问题啊

npm install zrender

uni-app 中使用 ViteVue 3.0 开发微信小程序时,引入 ECharts 后无法编译的问题,通常是由于 ECharts 的模块化方式与微信小程序的模块化方式不兼容导致的。以下是一些可能的解决方案:

1. 使用 echarts-for-weixin

echarts-for-weixin 是专门为微信小程序优化的 ECharts 版本,可以直接在微信小程序中使用。

安装

npm install echarts-for-weixin --save

使用

在需要使用 ECharts 的页面中引入:

import * as echarts from 'echarts-for-weixin';

2. 使用 uni-apprenderjs

uni-app 提供了 renderjs 技术,可以在小程序中使用 ECharts

安装

npm install echarts --save

使用

renderjs 中引入 ECharts

import * as echarts from 'echarts';

export default {
  mounted() {
    this.initChart();
  },
  methods: {
    initChart() {
      const chart = echarts.init(this.$refs.chart);
      chart.setOption({
        // 你的配置项
      });
    }
  }
}

3. 使用 uni-appweb-view

如果以上方法都无法解决问题,可以考虑使用 web-view 组件,将 ECharts 放在一个 H5 页面中,然后在微信小程序中通过 web-view 加载这个 H5 页面。

使用

<web-view src="https://your-h5-page.com"></web-view>

4. 检查 Vite 配置

确保 Vite 的配置没有对 ECharts 进行不必要的处理。可以在 vite.config.js 中添加以下配置:

export default {
  optimizeDeps: {
    exclude: ['echarts']
  }
}

5. 检查 uni-app 配置

确保 uni-app 的配置没有对 ECharts 进行不必要的处理。可以在 manifest.json 中添加以下配置:

{
  "mp-weixin": {
    "optimization": {
      "subPackages": true
    }
  }
}

6. 使用 uni-appuni.requirePlugin

如果 ECharts 是通过插件方式引入的,可以使用 uni.requirePlugin 来加载插件。

使用

const echarts = uni.requirePlugin('echarts');

7. 检查 ECharts 版本

确保使用的 ECharts 版本与 uni-appVite 兼容。可以尝试升级或降级 ECharts 版本。

8. 使用 uni-appuni.import

如果 ECharts 是通过 uni.import 引入的,可以尝试使用 uni.import 来加载 ECharts

使用

uni.import('echarts').then(echarts => {
  // 使用 echarts
});

9. 检查 Vitebuild 配置

确保 Vitebuild 配置没有对 ECharts 进行不必要的处理。可以在 vite.config.js 中添加以下配置:

export default {
  build: {
    rollupOptions: {
      external: ['echarts']
    }
  }
}

10. 使用 uni-appuni.require

如果 ECharts 是通过 uni.require 引入的,可以尝试使用 uni.require 来加载 ECharts

使用

const echarts = uni.require('echarts');
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!