antvis / X6

🚀 JavaScript diagramming library that uses SVG and HTML for rendering.
https://x6.antv.antgroup.com
MIT License
5.78k stars 1.71k forks source link

vue2使用x6-vue-shape,1.3.1版本提示createApp()is not funciton #3989

Open zhangxilong-43 opened 1 year ago

zhangxilong-43 commented 1 year ago

问题描述

对应由于没有复现链接的Issue #1984 在此提供复现链接,在该示例中,如果将x6-vue-shape版本升级至1.2.0+,控制台则会出现该错误: TypeError: (0 , $csb__vue_demi.createApp) is not a function 如果版本低于1.2.0,则不会报错。

追踪后发现由于vue-demi的引入导致的报错。

重现链接

https://codesandbox.io/s/vue-shape-forked-c7kk2f?file=/src/App.vue

重现步骤

  1. 打开页面控制台
  2. 查看x6-vue-shape版本
  3. 将x6-vue-shape版本降低至1.2.0以下
  4. 观察控制台信息和页面情况

预期行为

预期当x6-vue-shape高于1.2.0时不报错

平台

屏幕截图或视频(可选)

No response

补充说明(可选)

No response

lloydzhou commented 1 year ago

到issue里面搜一下 vue-demi相关的东西。 这里的createApp应该是vue3的函数。 你需要用vue-demi切换到vue2的版本

zhangxilong-43 commented 1 year ago

到issue里面搜一下 vue-demi相关的东西。 这里的createApp应该是vue3的函数。 你需要用vue-demi切换到vue2的版本

我在控制台debug了,x6-vue-shape引入vue-demi,获取到的isVue3为true,isVue2为false; 我需要怎么隔着x6-vue-shape去切换vue-demi的版本呢?

nanfb commented 1 year ago

我记的是有相关issus的

NewByVector commented 1 year ago

可以参考这个回答:https://github.com/antvis/X6/issues/3961#issuecomment-1758836284

eeve commented 4 months ago
"@antv/x6-vue-shape": "^1.2.10"
  -> "vue-demi": "^0.7.4"

同样的问题,但使用的版本不一样,经过排查,确认是 vue-demipostinstall 钩子未正常执行,手动执行一下,问题即解决!

https://github.com/vueuse/vue-demi/blob/v0.7.4/package.json#L23

该钩子会确认项目所使用的vue版本,然后复制对应版本的 index.[esm|cjs].js 作为包的入口文件

https://github.com/vueuse/vue-demi/blob/v0.7.4/scripts/postinstall.js#L8-L12