在微前端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.最后


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



相关文章
|
4月前
|
前端开发 数据可视化 JavaScript
前端vite+vue3——可视化页面性能耗时指标(fmp、fp)
前端vite+vue3——可视化页面性能耗时指标(fmp、fp)
205 6
|
1月前
|
缓存 前端开发 JavaScript
前端项目性能优化:使用vite的分包策略
【8月更文挑战第4天】Vite性能优化-分包策略
46 2
前端项目性能优化:使用vite的分包策略
|
27天前
|
前端开发 Java C++
超简单使用Vite+Vue3构建共享开发和分模块打包的前端项目
使用Vite和Vue3构建支持共享组件和分模块独立打包的前端项目的方法。
80 0
超简单使用Vite+Vue3构建共享开发和分模块打包的前端项目
|
1月前
|
JavaScript 前端开发
什么是前端构建工具?vite和vite脚手架的关系!
【8月更文挑战第1天】前端构建工具简析
46 4
|
2月前
|
前端开发 JavaScript
前端 JS 经典:Vite 分包配置
前端 JS 经典:Vite 分包配置
70 0
|
2月前
|
JavaScript 前端开发
前端 JS 经典:统一 Vite 中图片转换逻辑
前端 JS 经典:统一 Vite 中图片转换逻辑
36 0
|
2月前
|
JavaScript 前端开发
前端 JS 经典:Vite 打包优化
前端 JS 经典:Vite 打包优化
131 0
|
3月前
|
存储 JavaScript 前端开发
vue 快速入门+vite前端构建工具
vue 快速入门+vite前端构建工具
60 0
|
4月前
|
资源调度 JavaScript 前端开发
Vite:下一代前端构建工具的快速上手
Vite 是由 Vue.js 的作者尤雨溪开发的下一代前端构建工具,它以其快速的冷启动、按需编译和热更新能力而受到广泛关注。Vite 通过利用浏览器原生的 ES 模块导入功能,提供了几乎即时的开发环境启动速度和高度优化的开发体验。
78 2
|
4月前
|
SQL 前端开发 JavaScript
前端vite+vue3结合后端node+koa——实现代码模板展示平台(支持模糊搜索+分页查询)
前端vite+vue3结合后端node+koa——实现代码模板展示平台(支持模糊搜索+分页查询)
127 4