我正在尝试将 Vite 与动态导入Vue SFC一起使用,但它不适用于生产构建。
有 stackblitz 的例子:
https://stackblitz.com/edit/vitejs-vite-ant1g2?file=src/main.ts
测试命令和 localhost:3000 显示良好。
vite
Run Code Online (Sandbox Code Playgroud)
但是预览和 localhost:4173 显示空白。
vite build && vite preview
Run Code Online (Sandbox Code Playgroud)
怎么了?你有什么解决办法?
我正在将现有的 laravel ineria 从 mix 迁移到 vit。
我完成了迁移指南中的所有步骤,除了一件事之外,一切正常。
我有一个组件接收一个包含组件数组的道具。
我曾经这样要求它们(在循环内)
...
this.$options.components[component_name] = require(`@/Pages/Components/Inputs/${component_name}`).default
...
Run Code Online (Sandbox Code Playgroud)
由于“ require ”,这不适用于 vite,我必须将其替换为import
所以我尝试了这些方法,但没有一个有效
this.$options.components[component_name] = () => resolvePageComponent(`./Pages/Components/Inputs/${component_name}.vue`, import.meta.glob('./Pages/**/*.vue'))
this.$options.components[component_name] = () => resolvePageComponent(`@/Pages/Components/Inputs/${component_name}.vue`, import.meta.glob('./Pages/**/*.vue'))
this.$options.components[component_name] = resolvePageComponent(`./Pages/Components/Inputs/${component_name}.vue`, import.meta.glob('./Pages/**/*.vue'))
this.$options.components[component_name] = resolvePageComponent(`@/Pages/Components/Inputs/${component_name}.vue`, import.meta.glob('./Pages/**/*.vue'))
Run Code Online (Sandbox Code Playgroud)
他们都抛出相同的异常
"Uncaught (in promise) Error: Page not found: ./Pages/Components/Inputs/Text.vue".
Run Code Online (Sandbox Code Playgroud)