共计 990 个字符,预计需要花费 3 分钟才能阅读完成。
介绍
mini-star
是一个为实现我的项目微内核 (插件化) 前端库,旨在帮忙大家能更简略、无痛的构建 (或革新成) 一个生产可用微内核 (插件化) 架构零碎。
什么是微内核
由一群尽可能将数量最小化的软件程序组成,他们负责提供、实现一个操作系统所须要的各种机制和性能。这些最根底的机制,包含了底层地址空间治理,线程治理,与过程间通信。
设计理念
将零碎的实现,与零碎的基本操作规定辨别开来。它实现的形式是将外围性能模块化,划分成几个独立的过程,各自运行,这些过程被称为服务。所有的服务过程,都运行在不同的地址空间。
让服务各自独立,能够缩小零碎之间的耦合度,易于实现与除错,也能够增进可移植性。它能够防止繁多组件生效,而造成整个零碎解体,内核只须要重启这个组件,不至于影响其余服务器的性能,使零碎稳定度减少。同时业务性能能够视须要,抽换或新增某些服务过程,使性能更有弹性。
就代码数量来看,一般来说,因为性能简化,外围零碎应用的代码比集成式零碎更少。更少的代码象征更少的潜藏程序 bug。
ministar 的外围设计理念
- 简略
因为基座我的项目与插件我的项目都能做到技术栈无关,ministar 对于用户而言只是一个相似 jQuery 插件零碎的库,你须要通过 ministar/runtime
来加载插件与共享依赖组件,而后用 ministar/bundler
来构建插件我的项目, 即可实现原零碎插件化的革新。
- 解耦 / 技术栈无关
微内核的外围指标与微前端一样,是将巨石利用拆解成若干能够自治的松耦合微利用,而 ministar 的诸多设计均是秉持这一准则,除了须要共享的公共依赖与基座我的项目提供的能力,插件我的项目领有本人的上下文,依赖治理,以及互相的通信机制,这样来保障插件具备独立开发的能力。并保障了与其它依赖共享类型的能力。
个性
- 开箱即用, 也能够进行定制化革新。
- 技术栈无关,任意技术栈的利用均可
应用 / 接入
,不论是 React/Vue/Angular/Svelte/JQuery 还是其余等框架。 - 共享依赖,同样的依赖只须要加载一次,缩小不必要的体积与打包工夫
- 像调用原生组件一样进行插件间的依赖调用
- 基于
Rollup
进行打包,快! - 为古代前端而生。在过来,咱们通过 window 裸露办法,当初咱们所有的代码都须要编译成模块,而裸露也通过模块
- 拓扑依赖排序,避免时序性的问题。
文档
- 官网文档
- Github
- 微内核架构在大型前端零碎中的利用(微前端)