遇到問題
在搭建完成正常開發(fā)的時(shí)候识补,也不知道在那個(gè)配置出了問題,每次一修改代碼凳干,保存vite都會(huì)重新reload晴裹,瀏覽器也會(huì)重新刷新,沒有了熱更新
測(cè)試了好久發(fā)現(xiàn)問題出在 unplugin-auto-import 和 unplugin-vue-components 這兩個(gè)插件
-
第一個(gè)問題:
直接使用默認(rèn)的聲明文件生產(chǎn)位置(和src同級(jí))救赐,此時(shí)src下面的所有vue文件無(wú)法讀取到聲明文件涧团,ts代碼提示會(huì)有報(bào)錯(cuò),但是不會(huì)出現(xiàn)page reload 和瀏覽器刷新問題
配置如下
export default defineConfig({
plugins: [
vue(),
AutoImport({
imports: ['vue', 'vue-router'],
resolvers: [ElementPlusResolver()]
}),
Components({
resolvers: [ElementPlusResolver()]
})
]
})
解決辦法
這個(gè)解決方法我真的試出來后把自己都整笑了经磅,居然這么容易就好了泌绣,只需要在tsconfig.json 里面加一個(gè)配置
{
"include": [
"src/**/*.ts",
"src/**/*.d.ts",
"src/**/*.tsx",
"src/**/*.vue",
"./**/*.d.ts" // 加這一行,讓ts讀取到和src同級(jí)的聲明文件
],
}
上面這個(gè)問題预厌,如果一開始我就按照默認(rèn)配置去整應(yīng)該沒有這么麻煩阿迈,我主要想說的是下面的這個(gè)問題
- 第二個(gè)問題
在上面第一個(gè)問題出來后,我選擇了修改默認(rèn)聲明文件的位置配乓,不是和src同級(jí)而是在src里面生產(chǎn)仿滔,這樣就可以直接讀取到聲明文件
問題來了!!!
這個(gè)時(shí)候只要你修改任何一行代碼哪怕是加個(gè)空格,終端都會(huì)打印如下信息,瀏覽器就刷新了犹芹,hmr功能沒有了崎页,開發(fā)效率大打折扣
hmr update /src/page/login/Index.vue?vue&type=style&index=0&scope=true&lang.scss
hmr update /src/styles/index.scss
14:33:04 [vite] page reload src/auto-imports.d.ts
配置如下
export default defineConfig({
plugins: [
vue(),
AutoImport({
imports: ['vue', 'vue-router'],
dts: resolve(__dirname, 'src/auto-imports.d.ts'),
resolvers: [ElementPlusResolver()]
}),
Components({
resolvers: [ElementPlusResolver()],
dts: resolve(__dirname, 'src/global-components.d.ts')
})
]
})
這個(gè)問題沒有解決方案,我測(cè)試了很多次都不行腰埂,但是如果重新創(chuàng)建一個(gè)項(xiàng)目飒焦,配置了dts 又是可以實(shí)現(xiàn)的,這個(gè)可能是我這邊依賴項(xiàng)很多有沖突屿笼,具體還沒有找到牺荠,找到再記錄一下,或者有相同經(jīng)歷的可以分享一下