generator-mico-cli 0.1.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) hide show
  1. package/README.md +84 -0
  2. package/bin/mico.js +316 -0
  3. package/generators/micro-react/ignore-list.json +8 -0
  4. package/generators/micro-react/index.js +158 -0
  5. package/generators/micro-react/templates/.commitlintrc.js +6 -0
  6. package/generators/micro-react/templates/.cursor/rules/always-read-docs.mdc +129 -0
  7. package/generators/micro-react/templates/.cursor/rules/cicd-deploy.mdc +143 -0
  8. package/generators/micro-react/templates/.cursor/rules/coding-conventions.mdc +206 -0
  9. package/generators/micro-react/templates/.cursor/rules/commit-conventions.mdc +111 -0
  10. package/generators/micro-react/templates/.cursor/rules/development-guide.mdc +295 -0
  11. package/generators/micro-react/templates/.cursor/rules/layout-app.mdc +275 -0
  12. package/generators/micro-react/templates/.cursor/rules/micro-frontend.mdc +196 -0
  13. package/generators/micro-react/templates/.cursor/rules/project-overview.mdc +128 -0
  14. package/generators/micro-react/templates/.cursor/rules/request-auth.mdc +220 -0
  15. package/generators/micro-react/templates/.cursor/rules/theme-system.mdc +206 -0
  16. package/generators/micro-react/templates/.editorconfig +16 -0
  17. package/generators/micro-react/templates/.env +3 -0
  18. package/generators/micro-react/templates/.eslintrc.js +30 -0
  19. package/generators/micro-react/templates/.husky/commit-msg +2 -0
  20. package/generators/micro-react/templates/.husky/pre-commit +2 -0
  21. package/generators/micro-react/templates/.lintstagedrc +5 -0
  22. package/generators/micro-react/templates/.stylelintrc.js +25 -0
  23. package/generators/micro-react/templates/AGENTS.md +39 -0
  24. package/generators/micro-react/templates/CICD/start_dev.sh +30 -0
  25. package/generators/micro-react/templates/CICD/start_local.sh +30 -0
  26. package/generators/micro-react/templates/CICD/start_prod.sh +30 -0
  27. package/generators/micro-react/templates/CICD/start_test.sh +30 -0
  28. package/generators/micro-react/templates/CICD/wangsu_fresh_dev.sh +19 -0
  29. package/generators/micro-react/templates/CICD/wangsu_fresh_prod.sh +19 -0
  30. package/generators/micro-react/templates/CICD/wangsu_fresh_test.sh +19 -0
  31. package/generators/micro-react/templates/CLAUDE.md +106 -0
  32. package/generators/micro-react/templates/README.md +84 -0
  33. package/generators/micro-react/templates/_gitignore +57 -0
  34. package/generators/micro-react/templates/_npmrc +2 -0
  35. package/generators/micro-react/templates/apps/layout/.env +4 -0
  36. package/generators/micro-react/templates/apps/layout/.eslintrc.js +10 -0
  37. package/generators/micro-react/templates/apps/layout/.lintstagedrc +17 -0
  38. package/generators/micro-react/templates/apps/layout/.prettierignore +3 -0
  39. package/generators/micro-react/templates/apps/layout/.prettierrc +8 -0
  40. package/generators/micro-react/templates/apps/layout/.stylelintrc.js +20 -0
  41. package/generators/micro-react/templates/apps/layout/README.md +37 -0
  42. package/generators/micro-react/templates/apps/layout/config/config.dev.ts +54 -0
  43. package/generators/micro-react/templates/apps/layout/config/config.prod.ts +37 -0
  44. package/generators/micro-react/templates/apps/layout/config/config.testing.ts +27 -0
  45. package/generators/micro-react/templates/apps/layout/config/config.ts +132 -0
  46. package/generators/micro-react/templates/apps/layout/config/routes.ts +13 -0
  47. package/generators/micro-react/templates/apps/layout/mock/api.mock.ts +78 -0
  48. package/generators/micro-react/templates/apps/layout/mock/menus.json +100 -0
  49. package/generators/micro-react/templates/apps/layout/mock/menus.ts +11 -0
  50. package/generators/micro-react/templates/apps/layout/mock/user.mock.ts +20 -0
  51. package/generators/micro-react/templates/apps/layout/package.json +45 -0
  52. package/generators/micro-react/templates/apps/layout/public/font/ar-SA.js +54 -0
  53. package/generators/micro-react/templates/apps/layout/public/font/default.js +54 -0
  54. package/generators/micro-react/templates/apps/layout/src/app.tsx +123 -0
  55. package/generators/micro-react/templates/apps/layout/src/assets/.gitkeep +0 -0
  56. package/generators/micro-react/templates/apps/layout/src/common/auth/cs-auth-manager.ts +220 -0
  57. package/generators/micro-react/templates/apps/layout/src/common/auth/index.ts +41 -0
  58. package/generators/micro-react/templates/apps/layout/src/common/auth/tool.ts +3 -0
  59. package/generators/micro-react/templates/apps/layout/src/common/auth/type.ts +6 -0
  60. package/generators/micro-react/templates/apps/layout/src/common/constants.ts +38 -0
  61. package/generators/micro-react/templates/apps/layout/src/common/env.ts +73 -0
  62. package/generators/micro-react/templates/apps/layout/src/common/helpers.ts +69 -0
  63. package/generators/micro-react/templates/apps/layout/src/common/locale.ts +123 -0
  64. package/generators/micro-react/templates/apps/layout/src/common/logger.ts +45 -0
  65. package/generators/micro-react/templates/apps/layout/src/common/menu/index.ts +2 -0
  66. package/generators/micro-react/templates/apps/layout/src/common/menu/parser.ts +143 -0
  67. package/generators/micro-react/templates/apps/layout/src/common/menu/types.ts +92 -0
  68. package/generators/micro-react/templates/apps/layout/src/common/request/config.ts +73 -0
  69. package/generators/micro-react/templates/apps/layout/src/common/request/index.ts +188 -0
  70. package/generators/micro-react/templates/apps/layout/src/common/request/interceptors.ts +186 -0
  71. package/generators/micro-react/templates/apps/layout/src/common/request/sso.ts +132 -0
  72. package/generators/micro-react/templates/apps/layout/src/common/request/token-refresh.ts +136 -0
  73. package/generators/micro-react/templates/apps/layout/src/common/request/types.ts +44 -0
  74. package/generators/micro-react/templates/apps/layout/src/common/request/url-resolver.ts +75 -0
  75. package/generators/micro-react/templates/apps/layout/src/common/theme.ts +107 -0
  76. package/generators/micro-react/templates/apps/layout/src/common/types.ts +7 -0
  77. package/generators/micro-react/templates/apps/layout/src/common/upload/index.ts +2 -0
  78. package/generators/micro-react/templates/apps/layout/src/common/upload/oss.ts +401 -0
  79. package/generators/micro-react/templates/apps/layout/src/common/upload/types.ts +47 -0
  80. package/generators/micro-react/templates/apps/layout/src/common/uploadFiles.ts +35 -0
  81. package/generators/micro-react/templates/apps/layout/src/components/IconFont/index.tsx +25 -0
  82. package/generators/micro-react/templates/apps/layout/src/components/MicroAppLoader/index.less +44 -0
  83. package/generators/micro-react/templates/apps/layout/src/components/MicroAppLoader/index.tsx +121 -0
  84. package/generators/micro-react/templates/apps/layout/src/constants/index.ts +15 -0
  85. package/generators/micro-react/templates/apps/layout/src/global.less +13 -0
  86. package/generators/micro-react/templates/apps/layout/src/hooks/index.ts +3 -0
  87. package/generators/micro-react/templates/apps/layout/src/hooks/useAuth.ts +75 -0
  88. package/generators/micro-react/templates/apps/layout/src/hooks/useMenu.ts +35 -0
  89. package/generators/micro-react/templates/apps/layout/src/hooks/useMenuState.ts +112 -0
  90. package/generators/micro-react/templates/apps/layout/src/hooks/useTheme.ts +124 -0
  91. package/generators/micro-react/templates/apps/layout/src/layouts/components/header/index.less +109 -0
  92. package/generators/micro-react/templates/apps/layout/src/layouts/components/header/index.tsx +97 -0
  93. package/generators/micro-react/templates/apps/layout/src/layouts/components/menu/index.less +164 -0
  94. package/generators/micro-react/templates/apps/layout/src/layouts/components/menu/index.tsx +165 -0
  95. package/generators/micro-react/templates/apps/layout/src/layouts/index.less +71 -0
  96. package/generators/micro-react/templates/apps/layout/src/layouts/index.tsx +91 -0
  97. package/generators/micro-react/templates/apps/layout/src/locales/en-US.ts +20 -0
  98. package/generators/micro-react/templates/apps/layout/src/locales/zh-CN.ts +19 -0
  99. package/generators/micro-react/templates/apps/layout/src/models/global.ts +13 -0
  100. package/generators/micro-react/templates/apps/layout/src/pages/Home/index.less +3 -0
  101. package/generators/micro-react/templates/apps/layout/src/pages/Home/index.tsx +7 -0
  102. package/generators/micro-react/templates/apps/layout/src/requestErrorConfig.ts +171 -0
  103. package/generators/micro-react/templates/apps/layout/src/services/auth.ts +37 -0
  104. package/generators/micro-react/templates/apps/layout/src/services/oss.ts +40 -0
  105. package/generators/micro-react/templates/apps/layout/src/styles/arco-override.less +78 -0
  106. package/generators/micro-react/templates/apps/layout/src/styles/themes/dark/custom-var.less +244 -0
  107. package/generators/micro-react/templates/apps/layout/src/styles/themes/normal/custom-var.less +195 -0
  108. package/generators/micro-react/templates/apps/layout/src/styles/variables.less +5 -0
  109. package/generators/micro-react/templates/apps/layout/src/utils/format.ts +4 -0
  110. package/generators/micro-react/templates/apps/layout/tailwind.config.js +7 -0
  111. package/generators/micro-react/templates/apps/layout/tailwind.css +3 -0
  112. package/generators/micro-react/templates/apps/layout/tsconfig.json +3 -0
  113. package/generators/micro-react/templates/apps/layout/typings.d.ts +1 -0
  114. package/generators/micro-react/templates/deployDesc.md +60 -0
  115. package/generators/micro-react/templates/docs/commit-message.md +98 -0
  116. package/generators/micro-react/templates/package.json +35 -0
  117. package/generators/micro-react/templates/packages/shared-styles/README.md +125 -0
  118. package/generators/micro-react/templates/packages/shared-styles/arco-override.less +78 -0
  119. package/generators/micro-react/templates/packages/shared-styles/index.less +14 -0
  120. package/generators/micro-react/templates/packages/shared-styles/package.json +27 -0
  121. package/generators/micro-react/templates/packages/shared-styles/theme-inject.less +10 -0
  122. package/generators/micro-react/templates/packages/shared-styles/themes/dark/custom-var.less +246 -0
  123. package/generators/micro-react/templates/packages/shared-styles/themes/normal/custom-var.less +195 -0
  124. package/generators/micro-react/templates/packages/shared-styles/variables-only.less +301 -0
  125. package/generators/micro-react/templates/packages/shared-styles/variables.less +363 -0
  126. package/generators/micro-react/templates/pnpm-workspace.yaml +9 -0
  127. package/generators/micro-react/templates/scripts/collect-dist.js +68 -0
  128. package/generators/micro-react/templates/scripts/create-umi-app.sh +61 -0
  129. package/generators/micro-react/templates/scripts/dev.js +133 -0
  130. package/generators/micro-react/templates/turbo.json +68 -0
  131. package/generators/subapp-react/ignore-list.json +7 -0
  132. package/generators/subapp-react/index.js +189 -0
  133. package/generators/subapp-react/templates/homepage/.env +4 -0
  134. package/generators/subapp-react/templates/homepage/README.md +116 -0
  135. package/generators/subapp-react/templates/homepage/_gitignore +9 -0
  136. package/generators/subapp-react/templates/homepage/config/config.dev.ts +59 -0
  137. package/generators/subapp-react/templates/homepage/config/config.prod.ts +41 -0
  138. package/generators/subapp-react/templates/homepage/config/config.testing.ts +40 -0
  139. package/generators/subapp-react/templates/homepage/config/config.ts +102 -0
  140. package/generators/subapp-react/templates/homepage/config/routes.ts +7 -0
  141. package/generators/subapp-react/templates/homepage/mock/api.mock.ts +59 -0
  142. package/generators/subapp-react/templates/homepage/package.json +30 -0
  143. package/generators/subapp-react/templates/homepage/src/app.tsx +80 -0
  144. package/generators/subapp-react/templates/homepage/src/assets/yay.jpg +0 -0
  145. package/generators/subapp-react/templates/homepage/src/common/logger.ts +42 -0
  146. package/generators/subapp-react/templates/homepage/src/common/mainApp.ts +53 -0
  147. package/generators/subapp-react/templates/homepage/src/common/request.ts +49 -0
  148. package/generators/subapp-react/templates/homepage/src/global.less +26 -0
  149. package/generators/subapp-react/templates/homepage/src/pages/index.less +139 -0
  150. package/generators/subapp-react/templates/homepage/src/pages/index.tsx +342 -0
  151. package/generators/subapp-react/templates/homepage/src/styles/theme.less +6 -0
  152. package/generators/subapp-react/templates/homepage/tsconfig.json +3 -0
  153. package/generators/subapp-react/templates/homepage/typings.d.ts +17 -0
  154. package/lib/utils.js +165 -0
  155. package/package.json +31 -0
@@ -0,0 +1,84 @@
1
+ # <%= projectName %>
2
+
3
+ 基于 qiankun 微前端架构的 Monorepo 项目。
4
+
5
+ ## 技术栈
6
+
7
+ - **Monorepo**:Turborepo + pnpm Workspace
8
+ - **前端框架**:UmiJS 4 / @umijs/max
9
+ - **微前端**:qiankun
10
+ - **UI 组件**:Arco Design
11
+ - **样式方案**:Tailwind CSS + Less
12
+ - **代码规范**:ESLint、Stylelint、lint-staged、Husky、Commitlint
13
+
14
+ ## 环境准备
15
+
16
+ - Node.js ≥ 18
17
+ - pnpm,建议执行 `corepack prepare pnpm@10.18.2 --activate`
18
+
19
+ ## 安装依赖
20
+
21
+ ```bash
22
+ pnpm install
23
+ ```
24
+
25
+ ## 常用脚本
26
+
27
+ | 命令 | 说明 |
28
+ |------|------|
29
+ | `pnpm dev` | 交互式选择并启动应用开发服务器 |
30
+ | `pnpm build` | 构建所有应用(生产环境) |
31
+ | `pnpm build:development` | 构建所有应用(开发环境) |
32
+ | `pnpm build:testing` | 构建所有应用(测试环境) |
33
+ | `pnpm build:production` | 构建所有应用(生产环境) |
34
+ | `pnpm lint` | 运行 ESLint + Turborepo lint 校验 |
35
+ | `pnpm lint:fix` | 自动修复 lint 问题 |
36
+
37
+ ## 新建子应用
38
+
39
+ 使用 Mico CLI 快速创建新的 React 子应用:
40
+
41
+ ```bash
42
+ # 全局安装(一次性)
43
+ pnpm add -g yo mico-cli
44
+
45
+ # 在仓库根目录执行
46
+ mico create subapp-react
47
+ ```
48
+
49
+ ## 仓库结构
50
+
51
+ ```
52
+ .
53
+ ├── apps/ # 业务应用目录
54
+ │ └── layout/ # 主应用(qiankun master)
55
+ ├── packages/ # 共享包目录
56
+ │ └── shared-styles/ # 共享样式
57
+ ├── scripts/ # 构建与开发脚本
58
+ │ ├── dev.js # 交互式启动脚本
59
+ │ ├── collect-dist.js # 构建产物收集
60
+ │ └── create-umi-app.sh # 创建新应用
61
+ ├── turbo.json # Turborepo 任务管道
62
+ ├── pnpm-workspace.yaml # Workspace 包含范围
63
+ └── .editorconfig # 编辑器统一约束
64
+ ```
65
+
66
+ ## 环境变量管理
67
+
68
+ - 根目录 `.env` / `.env.local` / `.env.[mode][.local]` 通过 `dotenv-cli` 注入所有应用
69
+ - 应用专属变量可在 `apps/<app>/.env.local` 中补充
70
+ - 影响缓存的变量需在 `turbo.json` 的 `globalEnv` 中登记
71
+
72
+ ## 微前端架构
73
+
74
+ 项目采用 qiankun 微前端方案:
75
+
76
+ - **主应用**:`apps/layout` 负责全局布局、路由管理、子应用加载
77
+ - **子应用**:通过 `mico create subapp-react` 创建,自动注册到主应用
78
+
79
+ ## 代码规范与提交
80
+
81
+ - **ESLint**:负责 JavaScript/TypeScript lint
82
+ - **Stylelint**:配合 Umi 预设处理 Less/CSS,兼容 Tailwind 语法
83
+ - **lint-staged**:提交前仅处理暂存区文件
84
+ - **Husky**:`pre-commit`(lint-staged)+ `commit-msg`(commitlint)钩子
@@ -0,0 +1,57 @@
1
+ # Dependencies
2
+ node_modules
3
+
4
+ # Turborepo cache
5
+ .turbo
6
+
7
+ # Logs
8
+ npm-debug.log*
9
+ yarn-debug.log*
10
+ yarn-error.log*
11
+ pnpm-debug.log*
12
+
13
+ # Build outputs
14
+ dist
15
+ .umi
16
+ .umi-production
17
+
18
+ # Editor directories
19
+ .idea
20
+ .vscode
21
+
22
+
23
+ # misc
24
+ .DS_Store
25
+ npm-debug.log*
26
+ yarn-error.log
27
+
28
+ /coverage
29
+ .idea
30
+ yarn.lock
31
+ package-lock.json
32
+ *bak
33
+ .vscode
34
+
35
+
36
+ # visual studio code
37
+ .history
38
+ *.log
39
+ functions/*
40
+ .temp/**
41
+
42
+ # umi
43
+ .umi
44
+ .umi-production
45
+ .umi-test
46
+
47
+ # screenshot
48
+ screenshot
49
+ .firebase
50
+
51
+ build
52
+
53
+
54
+ # OpenSpec 规范文档(仅供 AI agent 使用,不提交到 git)
55
+ /openspec
56
+
57
+ **/tasks/*
@@ -0,0 +1,2 @@
1
+ registry=https://registry.npmjs.com/
2
+
@@ -0,0 +1,4 @@
1
+ # Default: 5
2
+ CHECK_TIMEOUT=10
3
+ DID_YOU_KNOW=none
4
+
@@ -0,0 +1,10 @@
1
+ module.exports = {
2
+ root: true, // 不继承根目录配置
3
+ extends: [require.resolve('@umijs/max/eslint')],
4
+ // 如需覆盖规则,可在此添加
5
+ rules: {
6
+ // 关闭 "变量在定义前使用" 的警告(函数声明/const 函数表达式会被提升引用)
7
+ '@typescript-eslint/no-use-before-define': 'off',
8
+ 'no-use-before-define': 'off',
9
+ },
10
+ };
@@ -0,0 +1,17 @@
1
+ {
2
+ "*.{md,json}": [
3
+ "prettier --cache --write"
4
+ ],
5
+ "*.{js,jsx}": [
6
+ "max lint --fix --eslint-only",
7
+ "prettier --cache --write"
8
+ ],
9
+ "*.{css,less}": [
10
+ "max lint --fix --stylelint-only",
11
+ "prettier --cache --write"
12
+ ],
13
+ "*.ts?(x)": [
14
+ "max lint --fix --eslint-only",
15
+ "prettier --cache --parser=typescript --write"
16
+ ]
17
+ }
@@ -0,0 +1,3 @@
1
+ node_modules
2
+ .umi
3
+ .umi-production
@@ -0,0 +1,8 @@
1
+ {
2
+ "printWidth": 80,
3
+ "singleQuote": true,
4
+ "trailingComma": "all",
5
+ "proseWrap": "never",
6
+ "overrides": [{ "files": ".prettierrc", "options": { "parser": "json" } }],
7
+ "plugins": ["prettier-plugin-organize-imports", "prettier-plugin-packagejson"]
8
+ }
@@ -0,0 +1,20 @@
1
+ module.exports = {
2
+ extends: require.resolve('@umijs/max/stylelint'),
3
+ rules: {
4
+ 'at-rule-no-unknown': [
5
+ true,
6
+ {
7
+ ignoreAtRules: [
8
+ 'tailwind',
9
+ 'apply',
10
+ 'variants',
11
+ 'responsive',
12
+ 'screen',
13
+ 'layer',
14
+ ],
15
+ },
16
+ ],
17
+ // 允许设计系统中使用 PascalCase 命名的 CSS 自定义属性(如 --Brand1-1, --Success-1)
18
+ 'custom-property-pattern': null,
19
+ },
20
+ };
@@ -0,0 +1,37 @@
1
+ # Layout 应用
2
+
3
+ 主应用(qiankun master),提供统一布局、菜单导航、主题切换和微前端容器功能。
4
+
5
+ ## 启动开发
6
+
7
+ ```bash
8
+ pnpm -C apps/layout dev
9
+ ```
10
+
11
+ ## 目录结构
12
+
13
+ ```
14
+ src/
15
+ ├── app.tsx # Umi 运行时配置,patchClientRoutes 动态路由
16
+ ├── layouts/ # 主布局组件
17
+ ├── pages/ # 内部路由页面
18
+ ├── components/ # 公共组件(MicroAppLoader 等)
19
+ ├── common/ # 工具模块
20
+ │ ├── auth/ # 认证管理
21
+ │ ├── menu/ # 菜单解析(parser.ts, types.ts)
22
+ │ └── request/ # 请求封装
23
+ ├── hooks/ # 自定义 Hooks(useTheme 等)
24
+ ├── styles/ # 主题变量与样式
25
+ └── locales/ # 国际化文件
26
+ ```
27
+
28
+ ## 功能文档
29
+
30
+ | 文档 | 说明 |
31
+ | --- | --- |
32
+ | [微前端模式](./docs/feature-微前端模式.md) | qiankun 架构、MicroAppLoader、子应用配置 |
33
+ | [主题色切换](./docs/feature-主题色切换.md) | useTheme Hook、CSS 变量系统 |
34
+
35
+ ## 更多信息
36
+
37
+ 参见 [项目根目录 README](../../README.md)
@@ -0,0 +1,54 @@
1
+ // https://umijs.org/config/
2
+
3
+ import { defineConfig } from '@umijs/max';
4
+ import fs from 'fs';
5
+ import path from 'path';
6
+
7
+ // 使用 fs 读取 JSON 避免成为配置依赖,修改 menus.json 不会触发服务器重启
8
+ const mockMenus = JSON.parse(
9
+ fs.readFileSync(path.join(__dirname, '../mock/menus.json'), 'utf-8'),
10
+ );
11
+
12
+ const config: ReturnType<typeof defineConfig> = {
13
+ publicPath: '/',
14
+ /**
15
+ * @name 注入到 HTML head 的脚本
16
+ * @description 开发环境注入 mock 菜单数据
17
+ * @doc https://umijs.org/docs/api/config#headscripts
18
+ */
19
+ headScripts: [
20
+ {
21
+ content: `
22
+ window.__MICO_MENUS__ = ${JSON.stringify(mockMenus)};
23
+ window.__MICO_CONFIG__ = {
24
+ appName: 'Audit Center',
25
+ apiBaseUrl: '',
26
+ };
27
+ `,
28
+ },
29
+ ],
30
+
31
+ proxy: {
32
+ '/api/': {
33
+ // 要代理的地址
34
+ target: 'https://preview.pro.ant.design',
35
+ // 配置了这个可以从 http 代理到 https
36
+ // 依赖 origin 的功能可能需要这个,比如 cookie
37
+ changeOrigin: true,
38
+ },
39
+ },
40
+ define: {
41
+ 'process.env.NODE_ENV': 'development',
42
+ 'process.env.APP_ID': 'mibot_dev',
43
+ 'process.env.API_BASE_URL': 'https://dashboard-api-test.micoplatform.com',
44
+ 'process.env.PROXY_SUFFIX': '/',
45
+ 'process.env.LOGIN_ENDPOINT':
46
+ '',
47
+ 'process.env.REFRESH_ENDPOINT':
48
+ '',
49
+ 'process.env.EXTERNAL_LOGIN_PATH':
50
+ '',
51
+ },
52
+ };
53
+
54
+ export default defineConfig(config);
@@ -0,0 +1,37 @@
1
+ // https://umijs.org/config/
2
+
3
+ import { defineConfig } from '@umijs/max';
4
+ const { CDN_PUBLIC_PATH } = process.env;
5
+
6
+ const PUBLIC_PATH: string = CDN_PUBLIC_PATH
7
+ ? `${CDN_PUBLIC_PATH.replace(/\/?$/, '/')}layout/`
8
+ : '/layout/';
9
+
10
+ const config: ReturnType<typeof defineConfig> = {
11
+ define: {
12
+ 'process.env.NODE_ENV': 'production',
13
+ 'process.env.APP_ID': 'mibot',
14
+ 'process.env.API_BASE_URL': 'https://dashboard-api.micoplatform.com',
15
+ 'process.env.PROXY_SUFFIX': '/',
16
+ 'process.env.LOGIN_ENDPOINT':
17
+ '',
18
+ 'process.env.REFRESH_ENDPOINT':
19
+ '',
20
+ 'process.env.EXTERNAL_LOGIN_PATH':
21
+ '',
22
+ },
23
+ // 生产环境:将所有代码打包到一个文件
24
+ extraBabelPlugins: ['babel-plugin-dynamic-import-node'],
25
+
26
+ // 禁用代码分割,只输出一个 JS 和一个 CSS
27
+ chainWebpack(memo) {
28
+ // 禁用 splitChunks
29
+ memo.optimization.splitChunks(false);
30
+ // 禁用 runtimeChunk
31
+ memo.optimization.runtimeChunk(false);
32
+ return memo;
33
+ },
34
+ publicPath: PUBLIC_PATH,
35
+ };
36
+
37
+ export default defineConfig(config);
@@ -0,0 +1,27 @@
1
+ // https://umijs.org/config/
2
+
3
+ import { defineConfig } from '@umijs/max';
4
+
5
+ const config: ReturnType<typeof defineConfig> = {
6
+ proxy: {
7
+ '/api/': {
8
+ target: 'https://proapi.azurewebsites.net',
9
+ changeOrigin: true,
10
+ pathRewrite: { '^': '' },
11
+ },
12
+ },
13
+ define: {
14
+ 'process.env.NODE_ENV': 'testing',
15
+ 'process.env.APP_ID': 'mibot',
16
+ 'process.env.API_BASE_URL': 'https://dashboard-api-test.micoplatform.com',
17
+ 'process.env.PROXY_SUFFIX': '/',
18
+ 'process.env.LOGIN_ENDPOINT':
19
+ '',
20
+ 'process.env.REFRESH_ENDPOINT':
21
+ '',
22
+ 'process.env.EXTERNAL_LOGIN_PATH':
23
+ '',
24
+ },
25
+ };
26
+
27
+ export default defineConfig(config);
@@ -0,0 +1,132 @@
1
+ // https://umijs.org/config/
2
+
3
+ import { defineConfig } from '@umijs/max';
4
+ import routes from './routes';
5
+
6
+ /**
7
+ * @name 使用公共路径
8
+ * @description 部署时的路径,如果部署在非根目录下,需要配置这个变量
9
+ * @doc https://umijs.org/docs/api/config#publicpath
10
+ */
11
+ const PUBLIC_PATH: string = '/';
12
+
13
+ const config: ReturnType<typeof defineConfig> = {
14
+ /**
15
+ * @name 挂载元素 ID
16
+ * @description React 应用挂载的 DOM 元素 id
17
+ * @doc https://umijs.org/docs/api/config#mountelementid
18
+ */
19
+ mountElementId: '<%= projectName %>',
20
+
21
+ /**
22
+ * @name 开启 hash 模式
23
+ * @description 让 build 之后的产物包含 hash 后缀。通常用于增量发布和避免浏览器加载缓存。
24
+ * @doc https://umijs.org/docs/api/config#hash
25
+ */
26
+ hash: false,
27
+
28
+ publicPath: PUBLIC_PATH,
29
+
30
+ /**
31
+ * @name 路由配置
32
+ * @description 基础静态路由,动态路由通过 patchClientRoutes 在运行时添加
33
+ * @doc https://umijs.org/docs/guides/routes
34
+ */
35
+ routes,
36
+
37
+ /**
38
+ * @name Less 配置
39
+ * @description 全局导入 Arco Design 主题变量
40
+ */
41
+ lessLoader: {
42
+ modifyVars: {},
43
+ },
44
+
45
+ /**
46
+ * @name moment 的国际化配置
47
+ * @description 如果对国际化没有要求,打开之后能减少js的包大小
48
+ * @doc https://umijs.org/docs/api/config#ignoremomentlocale
49
+ */
50
+ ignoreMomentLocale: true,
51
+
52
+ /**
53
+ * @name 快速热更新配置
54
+ * @description 一个不错的热更新组件,更新时可以保留 state
55
+ */
56
+ fastRefresh: true,
57
+
58
+ //============== 以下都是max的插件配置 ===============
59
+
60
+ /**
61
+ * @name 网络请求配置
62
+ * @doc https://umijs.org/docs/max/request
63
+ */
64
+ request: {},
65
+
66
+ /**
67
+ * @name 数据流插件
68
+ * @doc https://umijs.org/docs/max/data-flow
69
+ */
70
+ model: {},
71
+
72
+ /**
73
+ * @name 全局初始状态
74
+ * @doc https://umijs.org/docs/max/data-flow#%E5%85%A8%E5%B1%80%E5%88%9D%E5%A7%8B%E7%8A%B6%E6%80%81
75
+ */
76
+ initialState: {},
77
+
78
+ /**
79
+ * @name layout 插件
80
+ * @description 禁用内置 layout,使用自定义 Arco Design 布局
81
+ * @doc https://umijs.org/docs/max/layout-menu
82
+ */
83
+ layout: false,
84
+
85
+ /**
86
+ * @name 国际化插件
87
+ * @doc https://umijs.org/docs/max/i18n
88
+ */
89
+ locale: {
90
+ default: 'zh-CN',
91
+ antd: false,
92
+ baseNavigator: true,
93
+ },
94
+
95
+ /**
96
+ * @name Mock 配置
97
+ * 注意:mock/menus.ts 是纯数据文件,不是 mock API,需要排除
98
+ */
99
+ mock: {
100
+ include: ['mock/**/_mock.ts', 'mock/**/*.mock.ts', 'src/pages/**/_mock.ts'],
101
+ },
102
+
103
+ /**
104
+ * @name 其他配置
105
+ */
106
+ esbuildMinifyIIFE: true,
107
+ exportStatic: {},
108
+
109
+ define: {
110
+ 'process.env.NODE_ENV': process.env.NODE_ENV,
111
+ },
112
+
113
+ /**
114
+ * @name Tailwind CSS 配置
115
+ * @doc https://tailwindcss.com/docs/installation/using-postcss
116
+ */
117
+ tailwindcss: {},
118
+
119
+ /**
120
+ * @name qiankun 微前端配置
121
+ * @description 作为主应用,动态加载子应用
122
+ * @doc https://umijs.org/docs/max/micro-frontend
123
+ */
124
+ qiankun: {
125
+ master: {
126
+ // 子应用配置,可以在运行时通过 API 动态注册
127
+ apps: [],
128
+ },
129
+ },
130
+ };
131
+
132
+ export default defineConfig(config);
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @name 基础路由配置
3
+ * @description 这里只配置静态的基础路由,动态路由从 window.__MICO_MENUS__ 获取
4
+ * @doc https://umijs.org/docs/guides/routes
5
+ * @note Umi Max 会自动使用 src/layouts/index.tsx 作为全局布局,无需显式配置
6
+ */
7
+ export default [
8
+ {
9
+ path: '/',
10
+ component: './Home',
11
+ name: '首页',
12
+ },
13
+ ];
@@ -0,0 +1,78 @@
1
+ /**
2
+ * @name Mock API
3
+ * @description homepage 子应用的 Mock 数据
4
+ * @doc https://umijs.org/docs/guides/mock
5
+ */
6
+
7
+ export default {
8
+ // 获取用户信息
9
+ 'GET /api/user/info': {
10
+ success: true,
11
+ data: {
12
+ id: 1001,
13
+ name: '张三',
14
+ email: 'zhangsan@example.com',
15
+ avatar: 'https://api.dicebear.com/7.x/avataaars/svg?seed=homepage',
16
+ role: 'admin',
17
+ department: '技术部',
18
+ },
19
+ },
20
+
21
+ // 获取统计数据
22
+ 'GET /api/dashboard/stats': {
23
+ success: true,
24
+ data: {
25
+ totalUsers: 12580,
26
+ activeUsers: 3420,
27
+ pendingTasks: 156,
28
+ completedTasks: 8934,
29
+ lastUpdated: new Date().toISOString(),
30
+ },
31
+ },
32
+
33
+ // 获取列表数据
34
+ 'GET /api/items': {
35
+ success: true,
36
+ data: {
37
+ list: [
38
+ {
39
+ id: 1,
40
+ title: '待处理任务 A',
41
+ status: 'pending',
42
+ createdAt: '2025-12-27 10:00:00',
43
+ },
44
+ {
45
+ id: 2,
46
+ title: '待处理任务 B',
47
+ status: 'pending',
48
+ createdAt: '2025-12-27 09:30:00',
49
+ },
50
+ {
51
+ id: 3,
52
+ title: '已完成任务 C',
53
+ status: 'approved',
54
+ createdAt: '2025-12-26 15:00:00',
55
+ },
56
+ {
57
+ id: 4,
58
+ title: '已取消任务 D',
59
+ status: 'rejected',
60
+ createdAt: '2025-12-26 14:00:00',
61
+ },
62
+ ],
63
+ total: 4,
64
+ page: 1,
65
+ pageSize: 10,
66
+ },
67
+ },
68
+
69
+ // POST 请求示例
70
+ 'POST /api/items/approve': (req: any, res: any) => {
71
+ const { id } = req.body || {};
72
+ res.json({
73
+ success: true,
74
+ message: `Item ${id} approved successfully`,
75
+ data: { id, status: 'approved' },
76
+ });
77
+ },
78
+ };