ecomfe/vue-echarts

build后无法获取echart的实例

Preyou opened this issue · 13 comments

请确认

  • 我可以确认这个问题无法在 ECharts 项目本身中复现。

您是如何将 Vue-ECharts 引入项目的?

通过 ES 模块 import

版本信息

dependencies:
echarts 5.5.0
vue 3.4.27
vue-echarts 6.7.2

问题详情

在dev环境下一切正常,但是build后,无法通过ref获取vueEchart的实例

以下是一个最小复现案例

https://github.com/Preyou/vue-project

分别运行dev,和build后的preview,打开控制台对比输出。

对于以下简单的测试代码

<script setup>
import VueChart from 'vue-echarts'
import {ref} from 'vue'
import HelloWorld from './components/HelloWorld.vue'

const a = ref()
console.log(a);

const b = ref()
console.log(b);
</script>

<template>
  <VueChart ref="a"></VueChart>
  <HelloWorld ref="b" />
</template>

dev模式下正确拿到实例:
image

preview模式下的异常实例:
image

问题复现

https://github.com/Preyou/vue-project

复现代码输出不了你截图的日志吧。

复现代码输出不了你截图的日志吧。

我仓库的代码复现不了吗

复现代码输出不了你截图的日志吧。

两次截图分别是打包前和打包后a的值

b的值是正常的,我就没截图

我仓库的代码复现不了吗

复现不了,你检查一下吧

我仓库的代码复现不了吗

复现不了,你检查一下吧

可以复现啊

image

我准备了个在线的
https://stackblitz.com/~/github.com/Preyou/vue-project?file=src/App.vue

我仓库的代码复现不了吗

复现不了,你检查一下吧

可以复现啊

image

我准备了个在线的 https://stackblitz.com/~/github.com/Preyou/vue-project?file=src/App.vue

直接运行 pnpm run preview
再看控制台就可以发现,没有正确的获取实例

mount 以前 ref 的 value 应该是 undefined 吧,你这么写如果能取到值那肯定是因为热更新导致的。这在生产环境肯定不对啊。

mount 以前 ref 的 value 应该是 undefined 吧,你这么写如果能取到值那肯定是因为热更新导致的。这在生产环境肯定不对啊。

我这么写是没问题的,我打印的是ref而不是ref.value。而且就算是把log写在onMounted里,一样不行。

我试了一下在 preview 下取到组件实例是没有问题的,你不要看 console 打出来的内容,你试试实际调用实例上的方法看看。