{"id":16231298,"url":"https://github.com/boyyangzai/mini-umi","last_synced_at":"2025-04-05T19:09:09.657Z","repository":{"id":63979988,"uuid":"568433044","full_name":"BoyYangzai/mini-umi","owner":"BoyYangzai","description":"Building a Powerful Enterprise Front-End Framework","archived":false,"fork":false,"pushed_at":"2023-12-14T00:44:40.000Z","size":431,"stargazers_count":230,"open_issues_count":7,"forks_count":29,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-04-01T14:11:30.861Z","etag":null,"topics":["mini-umi","react","umi","umijs"],"latest_commit_sha":null,"homepage":"https://umijs.org/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BoyYangzai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-11-20T14:19:57.000Z","updated_at":"2025-03-04T14:34:08.000Z","dependencies_parsed_at":"2023-12-14T01:40:32.929Z","dependency_job_id":"5d909944-c48d-492f-b1ba-8759ce38ec2c","html_url":"https://github.com/BoyYangzai/mini-umi","commit_stats":{"total_commits":50,"total_committers":11,"mean_commits":4.545454545454546,"dds":0.38,"last_synced_commit":"143d55c76f6e8703f212d9fabec4a5170f7fc2b7"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BoyYangzai%2Fmini-umi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BoyYangzai%2Fmini-umi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BoyYangzai%2Fmini-umi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BoyYangzai%2Fmini-umi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BoyYangzai","download_url":"https://codeload.github.com/BoyYangzai/mini-umi/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247386263,"owners_count":20930618,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["mini-umi","react","umi","umijs"],"created_at":"2024-10-10T13:05:04.642Z","updated_at":"2025-04-05T19:09:09.629Z","avatar_url":"https://github.com/BoyYangzai.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"### 你将获得\n\n1.  类库开发，从0基础到掌握开源类库开发的所有知识；\n1.  新人友好，手摸手教你从0开始造轮子；\n1.  深入浅出，理解微内核架构、拓展无限可能；\n1.  手写内核，一步一步实现umi的微内核架构；\n1.  定制框架，教你搭建企业级可插拔定制框架。\n\n### 作者介绍\n\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;前百度、现蚂蚁体验技术部 AntV 开源团队实习生，牛客千粉博主，喜欢探索前端工程化解决方案，热爱开源，喜欢分享技术，同时也是 **AntV** 和 **Umi** 团队的 **Member**，\n### 适宜人群：\n\n在校大学生 ，初、中级前端工程师\n\n-   对前端开源社区中类库开发、框架开发、基础架构相关感兴趣的前端工程师\n-   对前端工程化感兴趣，想要学习如何参与开源，但没有系统学习认识的在校大学生和初级前端工程师\n-   一起阅读源码，和作者一起学习优秀前端工程师们的工程实践经验\n-   对于Umi微内核架构感兴趣，对如何基于Umi内核拓展能力开发例如蚂蚁金服的中后台框架-Bigfish，npm包研发工具father，以及刚刚推出的dumi2 感兴趣的前端工程师\n\n### 小册介绍：\n\n如果你现在去使用 Umi，你会发现它是一个类似于Nextjs、Remix一个样的前端框架，它有很多功能：约定式路由、SSR、MOCK数据、配置文件...\n\n像蚂蚁金服内部的中后台前端框架Bigfish其实就是基于Umi框架封装的,类似的还有Dumi、father这两个框架\n\n如果你对如何手写实现这样的前端框架感兴趣，这本小册你一定不能错过 \n![image.png](https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/bf354348729b498a98293151bbbffbb3~tplv-k3u1fbpfcp-watermark.image?)\n上图来自 Umi 官网\n#### 什么是微内核架构？\n\n如果你平时喜欢玩游戏，那你一定对MOD(模组)这个词并不陌生\n\n通过微内核暴露出来的API，你可以自定义各式各样的模组去实现任何你想要的功能，比方说给你的游戏角色换个衣服，比方说给你的前端框架加个SSR的模式，只不过在前端领域我们把它叫做Plugin-插件\n\n![image.png](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/6e2bed9af5bd41f891dac907b321e647~tplv-k3u1fbpfcp-watermark.image?)\n\n在本课程中，我分了三个大部分来系统讲述：\n\n![image.png](https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/69f86c1d874948e68da9d9c4f802539b~tplv-k3u1fbpfcp-watermark.image?)\n\n**1.前端工程化-类库开发**\n\n系统认识如何开发好用的npm类库与框架，每一小节都配备了充足的实战项目，保证新手同学也能看得懂，学得下去，为后续手写内核和框架学习必要工程化知识\n\n**2.手写微内核架构-实现mini-core**\n\n在这一大章，你将认识微内核架构的原理与实现，并亲手实现微内核架构的各个模块，如Service、Plugin、PluginAPI、可扩展插件系统、应用元数据等\n\n**3.手写企业级中后台前端框架**\n\n这一大章你已经实现了自己的微内核架构，我们将在微内核架构的基础上，手写实现一个企业级可用的中后台前端框架-mini-umi\n\n## 体验 mini-umi + Vue3.2 + Vite预设\n\u003e ✅ Monorepo 最佳实践 + Turbo 远端构建缓存\n```\nnpx create-mumi 项目名\nnpm install\nnpm run dev\nnpm run ssr // 服务端渲染模式\n```\n## 实现 Service Core 架构的最简模型\n😚已完成：\n\n✅ 实现内置 presets plugin 功能\n\n✅  实现 mini-umi 的 command 系统\n\n✅ 实现编译时 Hook\n\n✅ feat: 读取用户 Local Plugin\n\n✅ 完善插件API\n\n✅ 实现 create-mumi 脚手架\n\n✅ 实现 userConfig 以及 modify 全流程\n\n✅ 实现 Preset-Vue3.2 + Vite + dev build preview\n\n✅ 实现约定式路由 支持动态路由 Vite 支持 Vue3.2 Hmr\n\n✅ 支持对于 dev 约定式路由 的热更新\n\n✅ 支持以 LocalPlugin 的形式 ModifyBundleConfig\n\n✅ 支持用户配置文件自定义路由 和 更改约定式路由所在目录\n\n✅ 可通过 npm run ssr 开启服务端渲染模式\n\n✅ CSR SSR 支持用户自定义Layout\n\n...\n\n🤔More:\n- [ ] 实现一套 preset-react\n- [ ] 实现一套 preset-qiankun\n- [ ] 实现 Father\n- [ ] 实现 Dumi\n- [x] 实现一个新的应用型前端框架 - [Doctor](https://github.com/FE-Struggler/doctor)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fboyyangzai%2Fmini-umi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fboyyangzai%2Fmini-umi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fboyyangzai%2Fmini-umi/lists"}