在 Vue Vite 專案中,我有這樣的資料夾結構
問題是 vite 無法偵測 A.vue 或 B.vue 中的變更(ctrl s),即嵌套在元件資料夾中的 NestedFolder 下的元件。其他地方都工作正常。
我的 vite.config.js 看起來像這樣,
import { fileURLToPath, URL } from 'node:url' import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' // https://vitejs.dev/config/ export default defineConfig({ plugins: [ vue() ], resolve: { alias: { '@': fileURLToPath(new URL('./src', import.meta.url)), '@public': fileURLToPath(new URL('./public', import.meta.url)) } }, server: { proxy: { '/api': { target: 'XXX', changeOrigin: true, secure: false, ws: true, } } } })
我已經按照 vite HMR API 文件嘗試了自訂 HMR 函數,讓它使用它來發送完全重新載入。
... plugins: [ vue(), { name: 'custom-hmr', enforce: 'post', // HMR handleHotUpdate({ file, server }) { if (file.endsWith('.vue')) { console.log('reloading json file...'); server.ws.send({ type: 'reload', path: '*' }); } }, } ], ...
我查看了 vite 的 HMR API 文檔,但不知道如何在使用自訂 hmr 函數時向 vite 發送更新事件
任何有關如何解決此問題的幫助/建議將不勝感激。
好的,我解決了這個問題。問題不在於嵌套資料夾。 Vite似乎會忽略使用絕對路徑導入的元件。
例如Vite 不會偵測導入元件的變更:
但偵測相對導入的變化:
我找不到任何可以解決此問題的設定。但是元件導入的相對路徑解決了這個問題。這是一個問題嗎?