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


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



相关文章
|
2月前
|
缓存 前端开发 JavaScript
Vite 构建流程大揭秘:快速构建前端项目的秘密武器
Vite 构建流程大揭秘:快速构建前端项目的秘密武器
|
3月前
|
缓存 前端开发 JavaScript
(10月最新) 前端图形学实战: 从零开发几何画板(vue3 + vite版)
(10月最新) 前端图形学实战: 从零开发几何画板(vue3 + vite版)
63 0
|
4月前
|
缓存 前端开发 JavaScript
深入了解 Vite:快速、简洁、高效的前端构建工具(上)
深入了解 Vite:快速、简洁、高效的前端构建工具(上)
|
3月前
|
前端开发 数据可视化 JavaScript
前端图形学实战: 从零开发一款轻量级滑动验证码组件(vue3 + vite版)
前端图形学实战: 从零开发一款轻量级滑动验证码组件(vue3 + vite版)
98 0
|
3月前
|
前端开发 数据可视化 JavaScript
前端图形学实战: 100行代码实现几何画板的撤销重做等功能(vue3 + vite版)
前端图形学实战: 100行代码实现几何画板的撤销重做等功能(vue3 + vite版)
37 0
|
4月前
|
前端开发 JavaScript API
Vite 3.0 正式发布,下一代前端构建工具!
Vite 3.0 正式发布,下一代前端构建工具!
|
3月前
|
XML 前端开发 JavaScript
前端图形学实战: 从零实现编辑器的图层管理面板和实时缩略图(vue3 + vite版)
前端图形学实战: 从零实现编辑器的图层管理面板和实时缩略图(vue3 + vite版)
32 0
|
11天前
|
缓存 前端开发 JavaScript
前端vue3分享——项目封装axios、vite使用env环境变量
前端vue3分享——项目封装axios、vite使用env环境变量
17 0
|
2月前
|
前端开发 JavaScript 容器
前端vw自适应解决方案,适用pc端以及移动端,适用webpack以及vite,适用vue以及react
前端vw自适应解决方案,适用pc端以及移动端,适用webpack以及vite,适用vue以及react
74 0
|
4月前
|
缓存 前端开发 JavaScript
深入了解 Vite:快速、简洁、高效的前端构建工具(下)
深入了解 Vite:快速、简洁、高效的前端构建工具(下)
深入了解 Vite:快速、简洁、高效的前端构建工具(下)