P粉2454893912023-08-04 15:58:54
使用Rollup外掛程式解決這個問題非常容易。插件可以直接編寫在vite.config.js中。在這裡,您可以使用rollup的resolveId鉤子。當Vite/Rollup無法解析導入時,它會呼叫此鉤子。如果是Vue單一檔案元件(SFC),您可以將其解析為任何選擇的佔位符元件:
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(), { resolveId(id) { if (id.endsWith('.vue')) { // issue the error into the terminal console.error(`Component "${id}" is missing!`); return './src/components/Placeholder.vue'; } }, } ], resolve: { alias: { '@': fileURLToPath(new URL('./src', import.meta.url)) } } })
翻譯src/components/Placeholder.vue(如果您希望它為空,只需這樣做):
<script setup> console.error('Some component is missing, check the build terminal!'); </script> <template> <div class="background:orange;color:red">Some component is missing, check the build terminal!</div> </template>