什么是微内核(插件化)

https://segmentfault.com/a/1190000016862735
ministar 的核心设计理念
- 简单
由于基座项目与插件项目都能做到技术栈无关,ministar 对于用户而言只是一个类似 jQuery 插件系统的库,你需要通过 ministar/runtime 来加载插件与共享依赖组件,然后用 ministar/bundler 来构建插件项目, 即可实现原系统插件化的改造。
- 解耦 /技术栈无关
微内核的核心目标与微前端一样,是将巨石应用拆解成若干可以自治的松耦合微应用,而 ministar 的诸多设计均是秉持这一原则,除了需要共享的公共依赖与基座项目提供的能力,插件项目拥有自己的上下文,依赖管理,以及相互的通讯机制,这样来保证插件具有独立开发的能力。并保证了与其它依赖共享类型的能力。
特性
- 开箱即用, 也可以进行定制化改造。
- 技术栈无关,任意技术栈的应用均可
使用 /接入,不论是 React/Vue/Angular/Svelte/JQuery 还是其他等框架。 - 共享依赖,同样的依赖只需要加载一次,减少不必要的体积与打包时间
- 像调用原生组件一样进行插件间的依赖调用
- 基于
Rollup进行打包,快! - 为现代前端而生。在过去,我们通过 window 暴露方法,现在我们所有的代码都需要编译成模块,而暴露也通过模块
- 拓扑依赖排序,防止时序性的问题。