qiankun
qiankun copied to clipboard
想问一下,未来是否考虑支持 vite
官方大大,非常感谢你们辛苦付出! 想问一下,未来是否考虑支持 vite,这个需求很值得期待,对前端开发十分友好,如果官方不考虑支持,是否可以给出对接建议,期待ing...
是啊 vite啥时间有参考的配置啊
个人觉得不支持vite主要是因为vite的script标签中有type="module"
,而qiankun的依赖之一import-html-entry
不支持这个属性,导致整个框架不支持vite。但新版的import-html-entry
已经支持type="module"
(参见此处),只是qiankun的依赖还没更新,相信快了!
重要的是vite没有动态publicPath的支持, webpack_public_path
webpack_public_path 没有动态 就写死好了
个人觉得不支持vite主要是因为vite的script标签中有type="module",而qiankun的依赖之一import-html-entry不支持这个属性,导致整个框架不支持vite。但新版的import-html-entry已经支持type="module"(参见此处),只是qiankun的依赖还没更新,相信快了!
这个依赖早就更新了吧。
由于 qiankun 是通过 eval 来执行这些 js 的内容,而 vite 里面 import/export 没有被转码, 所以直接接入会报错:不允许在非type=module 的 script 里面使用 import
也就是说 vite 构建的 js 内容必须在 type=module 的 script 里面。如果修改下 import-html-entry 源码,对 type=module 的 script 进行放行,那么会导致 qiankun 拿不到生命周期函数,因为 js 内容不是 qiankun 执行的。这里改下生命周期函数的获取方式,或许可以。
按照 https://github.com/umijs/qiankun/issues/1268#issuecomment-807954544 这个方法,可以实现生产环境接入,开发环境不行。
但是存在以下问题:
-
pubicPath 需要写死
-
路由无法懒加载
-
图片只会被打包成 base64,无论大小
demo 地址:https://github.com/gongshun/qiankun-vue-demo/tree/feature/vite-child
猜想:其实 umd 打包不是必须的,如果直接在入口文件把生命周期函数挂在 window 上,也是可以拿到生命周期函数的,利用 @vitejs/plugin-legacy
进行转码,可以解决 type=module 的 script 的问题,但是还有其他的事情要做。不使用 umd 打包可以解决上面的问题2和3
@wangzhiwei1888
个人觉得不支持vite主要是因为vite的script标签中有type="module",而qiankun的依赖之一import-html-entry不支持这个属性,导致整个框架不支持vite。但新版的import-html-entry已经支持type="module"(参见此处),只是qiankun的依赖还没更新,相信快了!
这个依赖早就更新了吧。
由于 qiankun 是通过 eval 来执行这些 js 的内容,而 vite 里面 import/export 没有被转码, 所以直接接入会报错:不允许在非type=module 的 script 里面使用 import
也就是说 vite 构建的 js 内容必须在 type=module 的 script 里面。如果修改下 import-html-entry 源码,对 type=module 的 script 进行放行,那么会导致 qiankun 拿不到生命周期函数,因为 js 内容不是 qiankun 执行的。这里改下生命周期函数的获取方式,或许可以。
按照 #1268 (comment) 这个方法,可以实现生产环境接入,开发环境不行。
但是存在以下问题:
- pubicPath 需要写死
- 路由无法懒加载
![]()
- 图片只会被打包成 base64,无论大小
demo 地址:https://github.com/gongshun/qiankun-vue-demo/tree/feature/vite-child
猜想:其实 umd 打包不是必须的,如果直接在入口文件把生命周期函数挂在 window 上,也是可以拿到生命周期函数的,利用
@vitejs/plugin-legacy
进行转码,可以解决 type=module 的 script 的问题,但是还有其他的事情要做。不使用 umd 打包可以解决上面的问题2和3@wangzhiwei1888
这么搞代价有点大,没必要吧
个人觉得不支持vite主要是因为vite的script标签中有type="module",而qiankun的依赖之一import-html-entry不支持这个属性,导致整个框架不支持vite。但新版的import-html-entry已经支持type="module"(参见此处),只是qiankun的依赖还没更新,相信快了!
这个依赖早就更新了吧。 由于 qiankun 是通过 eval 来执行这些 js 的内容,而 vite 里面 import/export 没有被转码, 所以直接接入会报错:不允许在非type=module 的 script 里面使用 import
也就是说 vite 构建的 js 内容必须在 type=module 的 script 里面。如果修改下 import-html-entry 源码,对 type=module 的 script 进行放行,那么会导致 qiankun 拿不到生命周期函数,因为 js 内容不是 qiankun 执行的。这里改下生命周期函数的获取方式,或许可以。 按照 #1268 (comment) 这个方法,可以实现生产环境接入,开发环境不行。 但是存在以下问题:
- pubicPath 需要写死
- 路由无法懒加载
![]()
- 图片只会被打包成 base64,无论大小
demo 地址:https://github.com/gongshun/qiankun-vue-demo/tree/feature/vite-child 猜想:其实 umd 打包不是必须的,如果直接在入口文件把生命周期函数挂在 window 上,也是可以拿到生命周期函数的,利用
@vitejs/plugin-legacy
进行转码,可以解决 type=module 的 script 的问题,但是还有其他的事情要做。不使用 umd 打包可以解决上面的问题2和3 @wangzhiwei1888这么搞代价有点大,没必要吧
写了一个基于es打包的 vite插件 vite-plugin-qiankun , 大家可以试试a
npm install vite-plugin-qiankun 配置简单、保留es特性
同问,后续官方大大会有计划支持吗?我们的项目在计划转vite了,但使用了qiankun作为微前端框架,该计划一直搁浅。求助!!!
不支持的话,又没有相关建议,万分感谢!!!
同问,后续官方大大会有计划支持吗?我们的项目在计划转vite了,但使用了qiankun作为微前端框架,该计划一直搁浅。求助!!!
不支持的话,又没有相关建议,万分感谢!!!
vite-plugin-qiankun 这个插件我在生产使用,目前没有遇到什么问题,欢迎使用。
同问,后续官方大大会有计划支持吗?我们的项目在计划转vite了,但使用了qiankun作为微前端框架,该计划一直搁浅。求助!!! 不支持的话,又没有相关建议,万分感谢!!!
vite-plugin-qiankun 这个插件我在生产使用,目前没有遇到什么问题,欢迎使用。
请问有文档或者demo吗?
同问,后续官方大大会有计划支持吗?我们的项目在计划转vite了,但使用了qiankun作为微前端框架,该计划一直搁浅。求助!!! 不支持的话,又没有相关建议,万分感谢!!!
vite-plugin-qiankun 这个插件我在生产使用,目前没有遇到什么问题,欢迎使用。
请问有文档或者demo吗?
https://github.com/tengmaoqing/vite-plugin-qiankun 这个
同问,后续官方大大会有计划支持吗?我们的项目在计划转vite了,但使用了qiankun作为微前端框架,该计划一直搁浅。求助!!! 不支持的话,又没有相关建议,万分感谢!!!
vite-plugin-qiankun 这个插件我在生产使用,目前没有遇到什么问题,欢迎使用。
我用了,不知道是不是我的配置有问题,开发环境不行。我也参考呢你的demo,但demo的vite项目是build后一起启动的,我们还是想要dev模式。 老哥,有解不?
同问,后续官方大大会有计划支持吗?我们的项目在计划转vite了,但使用了qiankun作为微前端框架,该计划一直搁浅。求助!!! 不支持的话,又没有相关建议,万分感谢!!!
vite-plugin-qiankun 这个插件我在生产使用,目前没有遇到什么问题,欢迎使用。
我用了,不知道是不是我的配置有问题,开发环境不行。我也参考呢你的demo,但demo的vite项目是build后一起启动的,我们还是想要dev模式。 老哥,有解不?
dev就是不支持,只有生产支持
同问,后续官方大大会有计划支持吗?我们的项目在计划转vite了,但使用了qiankun作为微前端框架,该计划一直搁浅。求助!!! 不支持的话,又没有相关建议,万分感谢!!!
vite-plugin-qiankun 这个插件我在生产使用,目前没有遇到什么问题,欢迎使用。
我用了,不知道是不是我的配置有问题,开发环境不行。我也参考呢你的demo,但demo的vite项目是build后一起启动的,我们还是想要dev模式。 老哥,有解不?
现在支持dev环境了,欢迎尝试
个人觉得不支持vite主要是因为vite的script标签中有type="module",而qiankun的依赖之一import-html-entry不支持这个属性,导致整个框架不支持vite。但新版的import-html-entry已经支持type="module"(参见此处),只是qiankun的依赖还没更新,相信快了!
这个依赖早就更新了吧。 由于 qiankun 是通过 eval 来执行这些 js 的内容,而 vite 里面 import/export 没有被转码, 所以直接接入会报错:不允许在非type=module 的 script 里面使用 import
也就是说 vite 构建的 js 内容必须在 type=module 的 script 里面。如果修改下 import-html-entry 源码,对 type=module 的 script 进行放行,那么会导致 qiankun 拿不到生命周期函数,因为 js 内容不是 qiankun 执行的。这里改下生命周期函数的获取方式,或许可以。 按照 #1268 (comment) 这个方法,可以实现生产环境接入,开发环境不行。 但是存在以下问题:
- pubicPath 需要写死
- 路由无法懒加载
![]()
- 图片只会被打包成 base64,无论大小
demo 地址:https://github.com/gongshun/qiankun-vue-demo/tree/feature/vite-child 猜想:其实 umd 打包不是必须的,如果直接在入口文件把生命周期函数挂在 window 上,也是可以拿到生命周期函数的,利用
@vitejs/plugin-legacy
进行转码,可以解决 type=module 的 script 的问题,但是还有其他的事情要做。不使用 umd 打包可以解决上面的问题2和3 @wangzhiwei1888这么搞代价有点大,没必要吧
写了一个基于es打包的 vite插件 vite-plugin-qiankun , 大家可以试试a
npm install vite-plugin-qiankun 配置简单、保留es特性
大佬这个能支持vue3么?
@Kuitos 组内也有接入vite的想法,想问下官方是否考虑支持?
@kuitos 组内也有接入vite的想法,想问下官方是否考虑支持?
https://github.com/umijs/qiankun/discussions/1378 @humorHan
目前的尝试,希望能有更好的解决方案。https://juejin.cn/post/7078958486041657374
显然,并没有得到官方团队的正面答复丫~
过几天再来看看吧
+1
+1
mark +1
mark +1
mark +1
mark +1
+1
用iframe降级使用了
为啥官方不回复这个问题呀?
右上侧可以订阅这个 issue 的更新,建议后来的朋友不必回复无意义的 + 1,所有订阅的人都会收到邮件通知。