首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vue + Vite + Rollup:动态导入不工作于生产构建

Vue + Vite + Rollup:动态导入不工作于生产构建
EN

Stack Overflow用户
提问于 2022-04-26 07:18:16
回答 3查看 3.6K关注 0票数 2

我试图在dynamic-import Vue SFCs中使用Vite,但它不适用于生产构建。

这里有stackblitz示例:

https://stackblitz.com/edit/vitejs-vite-ant1g2?file=src/main.ts

测试命令和本地主机:3000显示良好。

代码语言:javascript
复制
vite

然而,预览和本地主机:4173显示为空白。

代码语言:javascript
复制
vite build && vite preview

怎么啦?你有什么解决办法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-04-26 10:54:55

使用defineAsyncComponent

https://stackblitz.com/edit/vitejs-vite-pmqny3?file=src/main.ts

代码语言:javascript
复制
import { createApp, defineAsyncComponent } from 'vue';

console.log('start app');
createApp(defineAsyncComponent(() => import('./App.vue'))).mount('#app');

谢谢你的https://misskey.dev/notes/8zjl4hnyz5

票数 0
EN

Stack Overflow用户

发布于 2022-06-02 16:59:26

我最近做了一个PoC,并且惊讶地知道dynamic导入特性在dev模式下工作良好,但是在没有特殊配置的生产构建中失败。这背后的原因(可能)是vite使用esbuild作为dev模式的绑定器,而使用rollup作为production构建的绑定器。

由于两种模式之间行为上的这种差异,我确保始终在devproduction模式中测试一个新概念,以确保它在production构建中也能工作,否则您最终将在dev模式下开发一个特性,但在稍后阶段才会意识到它在production模式下不起作用。

您需要列出rollupOptions of vite.configs.ts文件下的所有动态导入,以便使其在production模式下工作-

代码语言:javascript
复制
import { defineConfig } from 'vite'

export default defineConfig({
    build: {
        rollupOptions: {
            external: [
                "/path/to/external/module.es.js"
            ]
        }
    }
})
票数 1
EN

Stack Overflow用户

发布于 2022-04-26 10:19:24

对于标准导入,它工作正常,没有问题:

main.ts

代码语言:javascript
复制
import { createApp } from 'vue'
import App from './App.vue'

console.log('start app')
createApp(App).mount('#app')

为什么要动态导入?

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72009814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档