V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
riceball
V2EX  ›  前端开发

基于 Electron 的 React 插件化 AI IDE App, Piral vs Modern.js/Qiankun/Luigi 如何选?

  •  
  •   riceball · 12 天前 · 589 次点击

    我正在开发一个面向 AI IDE 的桌面应用,技术栈:React + Electron ,核心需求:

    1. 插件以 NPM 包形式分发,无需独立部署
    2. 运行时动态安装/卸载(通过 NPM Registry 安装到本地,用户从本地目录加载插件)
    3. 插件提供 React 组件/功能模块

    AI 推荐了如下 MFE(Micro Frontends)框架:

    • Piral: 基于 React 的微前端框架,专注于插件化架构( Pilet 系统)
    • Modern.js: 基于 Module Federation ( Webpack5 的特性),由抖音团队(字节跳动)开发,使用 Garfish 作为微前端运行时。
    • Qiankun: 基于 Single-spa ,由蚂蚁金服开发。是一个成熟的微前端解决方案,支持多种技术栈,但更注重于多个独立应用(子应用)的集成。通过 HTML Entry 加载子应用。
    • Luigi: 由 SAP 开发,技术中立(主要基于 Web Components )。侧重于提供一致的用户界面和导航,适用于大型企业应用。

    个人目前倾向于 Piral,大家怎么看?这些框架的坑点有哪些?

    求经验分享!🙏

    4 条回复    2025-07-20 19:31:16 +08:00
    opengg
        1
    opengg  
       12 天前 via Android
    从需求点看不出什么。
    如果只是自己的代码组织和发布问题,用哪个都可以,garfish 沙盒做得比较好,vmok/mf2 性能更好,只是取舍。
    如果你是做平台插件化,比如 figma plugin ,无论哪个方案你都需要包装,甚至需要定制沙盒或者 worker/wasm 运行时之类的。
    如果你是做 web ide ,直接用 vscode 二开,插件机制就用 vscode 的。
    riceball
        2
    riceball  
    OP
       12 天前
    @opengg MVP 需要简单快速,不仅仅是平台插件化,基本功能也会插件化,还会有 AI Lib(Agent/Ability/etc) Store, 比如听,说,画,唱等。Store 里的包和 App 插件还略有差别,包装肯定是免不了。vscode 代码编辑器,太臃肿了,这个只是为我自己的 AI 语言开发的 IDE, 主要是 talk 为主,editor 看是 Monaco 或 codemirror,只要支持语法高亮,diff/merge 就成. 先跑起来,后续在考虑沙盒隔离。
    opengg
        3
    opengg  
       12 天前
    @riceball 那你其实不需要沙盒,只是代码的拆分发布管理的话,用 mf2 或者 garfish 吧,封装少一点遇到问题就少一点。
    riceball
        4
    riceball  
    OP
       11 天前
    @opengg 功能拆分这是一方面,另一方面是我需要框架能推荐最佳实践,毕竟我对 vue 和 react 都不精通,也不太 care,只要满足需求就行。如果不要求插件体系,quasar 就是一个很好的前端 APP 框架,包裹了一切,就很省心,但是 vue3 就太不省心了,过于专注性能,牺牲了灵活性,然后就对 vue2 不兼容的地方太多。
    modern.js 本来可以的,可惜了,v2 开始就废弃了太多,专注核心是好事,但是 modern.js 不就是一个最佳实践的整合框架,但是力度越来越少,modern.js 的核心就是 mf2+garfish 。mf2 专注的是模块依赖共享; garfish 是一种微前端框架,garfish 更专注在微应用之间的完全隔离,主要考虑的是线上,而我是桌面应用,garfish 对我意义不大。

    看了下 Piral 的文档,Piral 是老牌桌面应用插件系统发展过来,一直到今天,支持 mf 和 importmap ,就插件体系来说,非常完善,工具链也完善。甚至通过它的插件体系实现对 Vue/Angular/Hyperapp/Inferno/Preact/Aurelia/LitElement 等的支持。

    Anyway, Thanks a lot.
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1215 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 23:32 · PVG 07:32 · LAX 16:32 · JFK 19:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.