yangyanggu / vue-amap

高德地图封装 for vue2 vue3.0
https://vue-amap.guyixi.cn/
MIT License
268 stars 15 forks source link

vue-amap挂载到APP上会导致vite热更新失效 #27

Closed zipe5155 closed 1 year ago

zipe5155 commented 1 year ago

使用版本

vue-amap: “2.0.3 ”
vite: “4.1.0” vue" "3.2.45"

问题描述

vue3.0 使用vue-amap挂载到APP上会导致vite热更新失效

Breathe97 commented 1 year ago

+1,如果改成页面内调用initAMapApiLoader 仅会导致当前页面热更新失效。 取消调用initAMapApiLoader 所有热更新正常。 结论:在没有调用initAMapApiLoader前 所有热更新正常 调用后 所有热更新失效

yangyanggu commented 1 year ago

目前发现只要import任何方法或者组件都会导致vite预加载整个组件库,然后导致热更新失效,暂时还没发现具体失效原因

Breathe97 commented 1 year ago

目前发现只要import任何方法或者组件都会导致vite预加载整个组件库,然后导致热更新失效,暂时还没发现具体失效原因

我这边大致给您提供一下我这边的现象: "@vuemap/vue-amap": "^2.0.5", "vue": "^3.2.47", "element-plus": "^2.3.3",

"@vitejs/plugin-vue": "^4.1.0",
"@vuemap/unplugin-resolver": "^2.0.0",
"unplugin-auto-import": "^0.15.3",
"unplugin-vue-components": "^0.24.1",
"vite": "^4.3.1",
"vue-tsc": "^1.4.1"

测试如下(因为全局引入会导致所有页面热更新失效,所以我把它放到了具体的页面下) import api from '@/api/overview' import { echart_option_jd, echart_option_ph } from './static/echart-options' import { computed, ref, nextTick } from 'vue' import '@vuemap/vue-amap/dist/style.css' import { initAMapApiLoader } from '@vuemap/vue-amap'

1、echart_option_jd、echart_option_ph 、api,他们都是可执行的方法 我这边没有导致热更新失效。(引入组件在其他地方引入也没有导致热更新失效)。 2、引入initAMapApiLoader 也不会失效 但是如果执行initAMapApiLoader() 就会导致失效。(不排除可能是其他原因导致的) 我配置了自动引入element-ui 和 vue-amap 所以有可能会冲突?。 :我想试试去掉自动引入 然后手动按需引入 但是我不知道怎么做。 :后面有时间我试试纯净项目只加载initAMapApiLoader() ,有消息我及时回复给您。 :大致就是这么多了,希望能给您一些帮助。

yangyanggu commented 1 year ago

目前发现只要import任何方法或者组件都会导致vite预加载整个组件库,然后导致热更新失效,暂时还没发现具体失效原因

我这边大致给您提供一下我这边的现象: "@vuemap/vue-amap": "^2.0.5", "vue": "^3.2.47", "element-plus": "^2.3.3",

"@vitejs/plugin-vue": "^4.1.0",
"@vuemap/unplugin-resolver": "^2.0.0",
"unplugin-auto-import": "^0.15.3",
"unplugin-vue-components": "^0.24.1",
"vite": "^4.3.1",
"vue-tsc": "^1.4.1"

测试如下(因为全局引入会导致所有页面热更新失效,所以我把它放到了具体的页面下) import api from '@/api/overview' import { echart_option_jd, echart_option_ph } from './static/echart-options' import { computed, ref, nextTick } from 'vue' import '@vuemap/vue-amap/dist/style.css' import { initAMapApiLoader } from '@vuemap/vue-amap'

1、echart_option_jd、echart_option_ph 、api,他们都是可执行的方法 我这边没有导致热更新失效。(引入组件在其他地方引入也没有导致热更新失效)。 2、引入initAMapApiLoader 也不会失效 但是如果执行initAMapApiLoader() 就会导致失效。(不排除可能是其他原因导致的) 我配置了自动引入element-ui 和 vue-amap 所以有可能会冲突?。 :我想试试去掉自动引入 然后手动按需引入 但是我不知道怎么做。 :后面有时间我试试纯净项目只加载initAMapApiLoader() ,有消息我及时回复给您。 :大致就是这么多了,希望能给您一些帮助。

目前知道的是由于vite的预加载机制引起问题,但具体问题出现原因还需要定位

yangyanggu commented 1 year ago

可以更新使用最新的2.0.7,已经修复

Breathe97 commented 1 year ago

可以更新使用最新的2.0.7,已经修复

好的 感谢大佬。

Breathe97 commented 1 year ago

实测 好使了。