Skip to content

Latest commit

 

History

History
142 lines (96 loc) · 14.2 KB

index.md

File metadata and controls

142 lines (96 loc) · 14.2 KB
title hero features
ProApp - 快速构建现代化monorepo应用
title description actions
Pro-App
🏆 快速构建现代化monorepo应用 🚀
text link
🏮🏮 快速开始 →
/guide
emoji title description
🏰
Umi生态
基于 React18+ 的应用研发框架<a href="https://umijs.org/" target="_blank" rel="noreferrer">[Umi4.x]</a> ,支持 Vite & Webpack 模式, mfsu极速dev环境编译优化,同时提供了微前端、Hooks、高度集成dumi等一体化解决方案,让前端开发更加简单规范,带给你简单而愉悦的 Web 开发体验。
emoji title description
🎨
Ant Design生态 + 丰富自研组件
已适配<a href="https://ant-design.gitee.io/theme-editor-cn" target="_blank" >[antd5.x主题]</a><a href="https://ant-design.gitee.io/docs/react/customize-theme-cn#overridetoken" target="_blank" >[token]</a>配置,轻松在css|js中使用token来定制开发,base<a href="https://ant-design.gitee.io/index-cn" target="_blank" rel="noreferrer">[Ant Design]</a>, <a href="https://procomponents.ant.design/" target="_blank" rel="noreferrer">[ProComponents]</a> ,提供了更高级别的抽象支持,开箱即用。可以显著的提升制作 CRUD 页面的效率,更加专注于页面。基于以上封装了<a href="/#/components">[更上层的组件]</a>,加快研发效率。
emoji title description
🚥
pnpm & monorepos
节约磁盘空间并提升安装速度,<a href="https://pnpm.io/zh/" target="_blank" rel="noreferrer">[pnpm]</a> 比其他包管理器快 2 倍,全场景自动化脚本支持,简化开发体验 , 版本管理,change-log日志自动生成, 多包管理,只需在一个仓库中开发,编码会相当方便, 代码复用高,方便进行代码重构, 仓库体积小,模块划分清晰。
emoji title description
💎
API组件研发工具 & 极速构建
<a href="https://d.umijs.org" target="_blank" rel="noreferrer">[dumi2.x]</a>丰富的Markdown扩展,不止于渲染组件demo,使得组件的文档不仅易于编写、管理,还好看、好用,API自动生成, 适配移动端,兼容主题系统,资产数据化能力。最新版组件构建工具<a href="https://github.com/umijs/father/blob/master/guide/guide/index.md" target="_blank" rel="noreferrer">[father4.x]</a>,更高效、高质量地研发 NPM 包、生成构建产物、再完成发布。
emoji title description
💪
TypeScript & AntV
使用 TypeScript 开发,组件和工具包提供完整的类型定义文件,引入类型定义(进行类型检查)和编译器,可以避免JavaScript大多数runtime错误,更可靠,易维护,更清晰, 类型就是最好的注释 & 企业级可视化解决方案<a href="https://antv.vision/zh" target="_blank" rel="noreferrer">[antv]</a>,任何图表,都可以基于图形语法灵活绘制,满足你无限的创意。
emoji title description
💡
CI集成 + 增量更新
集成发版工具<a href="https://github.com/changesets/changesets" target="_blank" rel="noreferrer">[changeset]</a>,自动打tag,自动生成项目更新日志,校验<a href="https://www.conventionalcommits.org/zh-hans/v1.0.0/" target="_blank" rel="noreferrer">[commit规范]</a>,让项目管理变得轻松自如,搭配自动化测试工具,代码更新出现问题时能快速定位bug并修复,基于微前端下,支持各大子应用<a href="/#/guide/publish#部署">增量更新部署</a>,做到改哪更新哪,进一步优化编译效率。

主应用 子应用 demo 在线文档

我们推荐

       

相关技术栈

             docs by dumi

环境

     

运行

我们所有的包管理都强制使用pnpm,在 monorepo 架构之上,pnpm 能极大发挥他的作用(设计初期就很好的考虑了当前复杂项目的痛点),相比 yarn 和 npm,pnpm 能节约磁盘空间并提升安装速度,且避免了关于深度嵌套包的一些意外情况,如果你还没有接触了解过 pnpm,可以看看相关文章, 而且当前已有众多前端团队和开源项目抛弃 npm,yarn,开始接入 pnpm。快速开始

  • npm pure-install (建议使用)纯净模式,仅安装主应用和 packages 的依赖, 忽略所有子应用依赖
  • pnpm i 安装所有依赖,包括 packages 和 projects
  • npm run dev # 运行主项目
  • npm run build # 打包主项目
  • npm run dev-project # 运行项目下的子应用(visual, dashboard, dataModel, ....)
  • npm run build-lib # 懒加载打包(esm 格式)package 下所有库(保留文件的引用关系),能解耦主应用代码,避免重复打包
  • npm run build-dist # 打包生产环境下 package 下所有库(压缩,生成单文件),适用于给其他团队项目中使用,仅忽略 antd,proComponents,moment 库
  • npm run build-selectPkg # 手动选择打包,防止后期包太多的情况全部打包消耗过多资源和时间
  • npm run doc # 运行项目文档, 包含组件库文档和项目说明等
  • npm run test # 跑测试用例

特性

发布

  • npm run release 提供界面交互可视化发包
  • npm run release:only 手动修改版本号后发包 查看更多

部署

为了很好的区分应用和对应的路由,我们建议所有子应用使用 hash 路由开发,这样能统一路由风格,增加路由的可读性,且能减少很多不必要的 nginx 配置 😊

http://xxx.xxx.xxx.xx:8088/dash/#/list?type=dashboard

地址拆分解析:

  • http://xxx.xxx.xxx.xx:8088 - 主机地址

  • /dash - 路由的 history 用来区分子应用

  • /#/list - hash 路由参数为子应用自己的路由

  • ?type=dashboard - 传参

    查看更多

相关插件

🖥 浏览器兼容性

edge Edge chrome safari electron_48x48
Edge last 2 versions last 2 versions last 2 versions last 2 versions