MiniStar 一个用于实现微内核(插件化)架构的前端框架

2021-06-04 08:45:14 +08:00
 moonrailgun

什么是微内核(插件化)

https://segmentfault.com/a/1190000016862735

ministar 的核心设计理念

由于基座项目与插件项目都能做到技术栈无关,ministar 对于用户而言只是一个类似 jQuery 插件系统的库,你需要通过 ministar/runtime 来加载插件与共享依赖组件,然后用 ministar/bundler 来构建插件项目, 即可实现原系统插件化的改造。

微内核的核心目标与微前端一样,是将巨石应用拆解成若干可以自治的松耦合微应用,而 ministar 的诸多设计均是秉持这一原则,除了需要共享的公共依赖与基座项目提供的能力,插件项目拥有自己的上下文,依赖管理,以及相互的通讯机制,这样来保证插件具有独立开发的能力。并保证了与其它依赖共享类型的能力。

特性

项目文档

2732 次点击
所在节点    分享创造
10 条回复
del1214
2021-06-04 08:55:14 +08:00
看来最近这类的项目没少写,大家都在造轮子,支持一下
musi
2021-06-04 09:07:48 +08:00
看了下大佬的 github 提交记录,直呼牛逼
Ritter
2021-06-04 10:16:17 +08:00
就是一个插件系统吗
meloncc
2021-06-04 11:06:17 +08:00
看了一下代码,这个框架与微前端相比,针对的是模块,颗粒度更小,让我联想到可配置工作流的应用场景中适不适用。
ericgui
2021-06-04 13:08:22 +08:00
这个有点意思
moonrailgun
2021-06-04 13:58:12 +08:00
@del1214 有其他类似的框架么?我找不到才造的这个轮子

@Ritter 可以这么理解,ministar 可以在不改变原有代码习惯的前提下渐进化完成对原有系统改成插件化的改造

@meloncc 动态工作流可以考虑试试使用动态生成代码的方式来实现。插件机制相比动态代码而言更加死,不是很适合工作流场景
superliwei
2021-06-04 23:09:20 +08:00
我现在的项目也是插件化的设计,每个插件有自己的作用域,能配置,能设置,支持多语言,多条件编译,能安装能卸载,独立编译。支持树状插件扩展,意思就是插件可以扩展插件。
9ki
2021-06-05 09:47:31 +08:00
@superliwei 考虑开源出来吗?
moonrailgun
2021-06-07 14:15:00 +08:00
@superliwei 插件化的思想并不新鲜,有兴趣交流一下你的项目的实现细节么。
superliwei
2021-06-07 15:40:28 +08:00
@moonrailgun 我现在的设计也有一问题,我做的是一个实时白板协作系统,系统中有很多的应用和插件,你可以理解都是插件只是不同的形态,有后台运行的,有按需加载的,有需要预加载的。每个应用都有自己的配置文件和多个语言包,还有单独的配置界面,整个交互界面类 iOS 。每个应用需要单独编译。同于不同的用户安装的应用和插件不同,所以我没法把一些文件一起打包,就会造成进入系统需要加载很多小文件,比如每个应用的配置文件,当前应用语言包,应用程序包,素材包等,这样就会大量请求。目前没想到更好的方案能减少请求数。贴一下网址: https://boardos.online

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/781263

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX