在微前端qiankun中使用Vite你踩坑了吗?(下)

简介: 哈喽,我是树酱。之前搭建的微前端体系已经稳步运行将近两年了,最近遇到一些童鞋反馈。之前据说qiankun并不支持Vite打包的应用,那是不是我就无法使用了?

微信截图_20220515001709.png


上图省略部分方法,详情请看本节末尾的Demo实例,代码实现的目的是为了构建html文件作为子应用的入口,构建结果如下所示👇


微信截图_20220515001717.png


其他环节跟基于Webpack的配置大致相同,这里不一一赘述


虽然这种方式针对生产模式可以实现集成,但是存在两个局限性:


  • 我们知道为了让qiankun 拿到子应用export的生命周期函数,所以需要将子应用打包成 umd 格式,而vite的code-splitting(代码分割)功能并不支持iifeumd两种格式,这会导致路由无法实现懒加载。


微信截图_20220515001727.png


  • 图片最终会被打包成 base64


更详细的Demo集成例子:👉  app-vue-vite


2.2 解决开发模式 + 生产模式的集成


单独解决生产模式的集成也不方便,毕竟很多时候需要我们在本地环节进行调试,那有什么方式可以同时让Vite支持这两种模式的集成呢?


Github上有一名开源作者开发了一款Vite插件叫vite-plugin-qiankun,通过这个插件可以在qiankun下走通这两种模式。甚至保留了vite构建模块的优势


  1. 修改Vite.config.js


微信截图_20220515001735.png

2. 修改子应用的main.ts,将生命周期mountbootstrapunmount 等通过插件函数renderWithQiankun在其中暴露完成。其他配置与基于webpack构建的子应用相同


微信截图_20220515001743.png


⏰ 注意事项:


  • qiankun官方是以window.__POWERED_BY_QIANKUN__来判断当前是否为qiankun环境下,而该插件引用之后是通过qiankunWindow.__POWERED_BY_QIANKUN__来判断


🐸 局限性:


  • 生产模式下依旧不支持publicPath, 需要将vite.config.jsbase配置写死。导致多环境部署不便捷。无法像在webpack结合window.INJECTED_PUBLIC_PATH_BY_QIANKUN + publicpath来解决


更详细的Demo集成例子:👉 viteapp


2.3  Vite对runtime publicpath的支持


目前在Vite官方文档没查阅到相关的配置,但在Github中找到一个插件vite-plugin-dynamic-publicpath。如果你有更好的解决方案,也欢迎评论区留言


2.4 关于Vite的Dotenv配置


如果你从 vue-cli 切换到Vite 需要注意 Dotenv 命名的变化


  • vite前缀是 VITE_vue-cliVUE_APP_
  • 获取方式也不一样,在vite是通过 import.meta.env,而在 vue-cli则是通过 process.env


3.最后


如果你有其他解决方式,欢迎在评论区留言,也可以加我微信,我们一起喝茶🍵 讨论



相关文章
|
20天前
|
前端开发 JavaScript 开发工具
Vite 4.0 发布,下一代的前端工具链
【10月更文挑战第21天】Vite 4.0 的发布标志着前端开发领域的又一次重要进步。它为开发者带来了更高效、更智能、更具创新性的开发体验,正逐渐成为下一代前端工具链的引领者。
|
30天前
|
前端开发 JavaScript
乾坤qiankun(微前端)样式隔离解决方案--使用插件替换前缀
乾坤qiankun(微前端)样式隔离解决方案--使用插件替换前缀
280 8
|
1月前
|
前端开发 JavaScript
Vite 多种前端框架的构建
Vite 多种前端框架的构建
|
28天前
|
前端开发 JavaScript 开发者
qiankun(乾坤)微前端框架简介
qiankun(乾坤)微前端框架简介
79 1
|
29天前
|
资源调度 前端开发 JavaScript
Vite:新一代前端构建工具的革命性体验
【10月更文挑战第13天】Vite:新一代前端构建工具的革命性体验
|
29天前
|
前端开发 JavaScript 中间件
Vite:下一代前端构建工具的崛起
【10月更文挑战第13天】Vite:下一代前端构建工具的崛起
|
29天前
|
JSON 前端开发 JavaScript
Vite:新一代前端构建工具的崛起
【10月更文挑战第13天】Vite:新一代前端构建工具的崛起
|
1月前
|
前端开发 JavaScript
轻松上手:基于single-spa构建qiankun微前端项目完整教程
轻松上手:基于single-spa构建qiankun微前端项目完整教程
39 0
|
3月前
|
缓存 前端开发 JavaScript
前端项目性能优化:使用vite的分包策略
【8月更文挑战第4天】Vite性能优化-分包策略
116 2
前端项目性能优化:使用vite的分包策略
|
3月前
|
前端开发 Java C++
超简单使用Vite+Vue3构建共享开发和分模块打包的前端项目
使用Vite和Vue3构建支持共享组件和分模块独立打包的前端项目的方法。
432 0
超简单使用Vite+Vue3构建共享开发和分模块打包的前端项目