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,143 @@
1
+ ---
2
+ description: CI/CD 与部署 - Jenkins 构建流程、环境配置、CDN 发布
3
+ globs: ["CICD/**", "deployDesc.md"]
4
+ ---
5
+
6
+ # CI/CD 与部署
7
+
8
+ ## 构建架构
9
+
10
+ ```
11
+ ┌─────────────────────────────────────────────────────────────────┐
12
+ │ Jenkins │
13
+ │ ┌─────────────────────────────────────────────────────────────┐│
14
+ │ │ 根据环境执行对应脚本: ││
15
+ │ │ ││
16
+ │ │ 开发环境 → CICD/start_dev.sh → build:development ││
17
+ │ │ 测试环境 → CICD/start_test.sh → build:testing ││
18
+ │ │ 生产环境 → CICD/start_prod.sh → build:production ││
19
+ │ │ 本地构建 → CICD/start_local.sh → build:local ││
20
+ │ └─────────────────────────────────────────────────────────────┘│
21
+ │ ↓ │
22
+ │ ┌─────────────────────────────────────────────────────────────┐│
23
+ │ │ 构建产物:dist/{app}/ ││
24
+ │ │ 上传 CDN:cdn-portal[-env].micoplatform.com/<%= projectName %>/ ││
25
+ │ └─────────────────────────────────────────────────────────────┘│
26
+ └─────────────────────────────────────────────────────────────────┘
27
+ ```
28
+
29
+ ## CICD 脚本
30
+
31
+ | 脚本 | 环境 | 构建命令 | CDN 路径 |
32
+ |------|------|---------|---------|
33
+ | `start_dev.sh` | 开发 | `build:development` | `cdn-portal-dev.micoplatform.com` |
34
+ | `start_test.sh` | 测试 | `build:testing` | `cdn-portal-test.micoplatform.com` |
35
+ | `start_prod.sh` | 生产 | `build:production` | `cdn-portal.micoplatform.com` |
36
+ | `start_local.sh` | 本地 | `build:local` | `./`(相对路径) |
37
+
38
+ ## 脚本执行流程
39
+
40
+ ```bash
41
+ #!/bin/bash
42
+ source ~/.bashrc
43
+
44
+ # 1. 安装 Node.js 和 pnpm
45
+ nvm install 22.20.0
46
+ nvm use 22.20.0
47
+ npm i -g pnpm@10.18.2 --registry=https://registry.npmmirror.com
48
+ pnpm install
49
+
50
+ # 2. 获取版本号
51
+ VERSION=$(node -p "require('./package.json').version")
52
+
53
+ # 3. 设置 CDN 路径
54
+ export CDN_PUBLIC_PATH="https://cdn-portal[-env].micoplatform.com/<%= projectName %>/${VERSION}/"
55
+
56
+ # 4. 执行构建
57
+ pnpm run build:[environment]
58
+
59
+ # 5. 输出版本信息
60
+ echo "VERSION=$VERSION" > .env_x_<%= projectName %>
61
+ ```
62
+
63
+ ## 环境配置
64
+
65
+ ### 分支策略
66
+ | 环境 | 分支 | 说明 |
67
+ |------|------|------|
68
+ | 测试环境 | `test` | 测试验证 |
69
+ | 生产环境 | `main` | 正式发布 |
70
+
71
+ ### CDN 域名
72
+ | 环境 | 域名 |
73
+ |------|------|
74
+ | 开发 | `cdn-portal-dev.micoplatform.com` |
75
+ | 测试 | `cdn-portal-test.micoplatform.com` |
76
+ | 生产 | `cdn-portal.micoplatform.com` |
77
+
78
+ ### CDN 路径结构
79
+ ```
80
+ cdn-portal.micoplatform.com/
81
+ └── <%= projectName %>/
82
+ └── {version}/
83
+ └── dist/
84
+ ├── layout/ # 主应用
85
+ ├── homepage/ # 子应用
86
+ └── ...
87
+ ```
88
+
89
+ ## 环境变量
90
+
91
+ ### CDN_PUBLIC_PATH
92
+ - 通过 `turbo.json` 的 `globalEnv` 注入
93
+ - 用于设置静态资源的公共路径
94
+ - 不同环境有不同的 CDN 域名
95
+
96
+ ### 版本号
97
+ - 从 `package.json` 的 `version` 字段读取
98
+ - 用于 CDN 路径中的版本隔离
99
+ - 构建后输出到 `.env_x_<%= projectName %>` 文件
100
+
101
+ ## 构建产物
102
+
103
+ ```bash
104
+ # 构建后目录结构
105
+ dist/
106
+ ├── layout/ # 主应用
107
+ │ ├── index.html
108
+ │ ├── umi.js
109
+ │ └── umi.css
110
+ ├── homepage/ # 子应用
111
+ │ ├── index.html
112
+ │ ├── umi.js
113
+ │ └── umi.css
114
+ └── ...
115
+ ```
116
+
117
+ ## 本地构建测试
118
+
119
+ ```bash
120
+ # 模拟测试环境构建
121
+ sh CICD/start_test.sh
122
+
123
+ # 模拟生产环境构建
124
+ sh CICD/start_prod.sh
125
+
126
+ # 本地构建(使用相对路径)
127
+ sh CICD/start_local.sh
128
+ ```
129
+
130
+ ## 环境要求
131
+
132
+ | 依赖 | 版本 | 说明 |
133
+ |------|------|------|
134
+ | nvm | 最新版 | Node 版本管理 |
135
+ | Node.js | 22.20.0 | 运行时 |
136
+ | pnpm | 10.18.2 | 包管理器 |
137
+
138
+ ## 注意事项
139
+
140
+ 1. **版本号管理**:修改 `package.json` 的 `version` 会影响 CDN 路径
141
+ 2. **CDN 刷新**:部署后可能需要刷新 CDN 缓存(见 `wangsu_fresh_*.sh`)
142
+ 3. **环境隔离**:不同环境使用不同的 CDN 域名和路径
143
+ 4. **构建缓存**:Turborepo 会根据 `turbo.json` 配置缓存构建结果
@@ -0,0 +1,206 @@
1
+ ---
2
+ description: 编码规范 - TypeScript、React、样式约定
3
+ globs: ["**/*.ts", "**/*.tsx", "**/*.less", "**/*.css"]
4
+ ---
5
+
6
+ # 编码规范
7
+
8
+ ## TypeScript 命名规范
9
+
10
+ ### 接口 (Interface)
11
+ 使用 `I` 前缀:
12
+ ```typescript
13
+ interface IUserInfo {
14
+ name: string;
15
+ avatar: string;
16
+ userid: string;
17
+ }
18
+
19
+ interface IMenuItem {
20
+ id: number;
21
+ name: string;
22
+ children?: IMenuItem[];
23
+ }
24
+ ```
25
+
26
+ ### 枚举 (Enum)
27
+ 使用 `E` 前缀:
28
+ ```typescript
29
+ enum EStatus {
30
+ Pending = 'pending',
31
+ Approved = 'approved',
32
+ Rejected = 'rejected',
33
+ }
34
+
35
+ enum EUserRole {
36
+ Admin = 'admin',
37
+ User = 'user',
38
+ }
39
+ ```
40
+
41
+ ### 类型别名 (Type)
42
+ 可用 `T` 前缀:
43
+ ```typescript
44
+ type TCallback = () => void;
45
+ type TRequestOptions = {
46
+ headers?: Record<string, string>;
47
+ timeout?: number;
48
+ };
49
+ ```
50
+
51
+ ## React 组件规范
52
+
53
+ ### 函数组件
54
+ ```typescript
55
+ import React from 'react';
56
+
57
+ interface MyComponentProps {
58
+ title: string;
59
+ onClose?: () => void;
60
+ }
61
+
62
+ const MyComponent: React.FC<MyComponentProps> = ({ title, onClose }) => {
63
+ return (
64
+ <div className="my-component">
65
+ <h1>{title}</h1>
66
+ {onClose && <button onClick={onClose}>关闭</button>}
67
+ </div>
68
+ );
69
+ };
70
+
71
+ export default MyComponent;
72
+ ```
73
+
74
+ ### Hooks 规范
75
+ - 自定义 Hook 以 `use` 前缀命名
76
+ - 放置在 `src/hooks/` 目录
77
+ - 导出时在 `src/hooks/index.ts` 统一导出
78
+
79
+ ```typescript
80
+ // src/hooks/useTheme.ts
81
+ export const useTheme = () => {
82
+ // ...
83
+ };
84
+
85
+ // src/hooks/index.ts
86
+ export { useTheme } from './useTheme';
87
+ export { useMenu } from './useMenu';
88
+ ```
89
+
90
+ ## 样式规范
91
+
92
+ ### Less 变量使用
93
+ 优先使用 Less 变量(有编辑器提示),而非直接使用 CSS 变量:
94
+
95
+ ```less
96
+ // ✅ 推荐
97
+ .my-card {
98
+ background-color: @color-fill-1;
99
+ color: @color-text-2;
100
+ border: 1px solid @color-border-2;
101
+ }
102
+
103
+ // ⚠️ 可用但缺少提示
104
+ .my-card {
105
+ background-color: var(--color-fill-1);
106
+ }
107
+ ```
108
+
109
+ ### 主题适配
110
+ 所有颜色都应使用主题变量,确保亮色/暗黑模式自动切换:
111
+
112
+ ```less
113
+ // 主要颜色变量
114
+ @Brand1-1 ~ @Brand1-7 // 品牌主色系列
115
+ @color-text-1 ~ @color-text-5 // 文字颜色(深 → 浅)
116
+ @color-fill-1 ~ @color-fill-5 // 填充颜色(浅 → 深)
117
+ @color-border-1 ~ @color-border-4 // 边框颜色
118
+ @Success-1 ~ @Success-7 // 成功状态色
119
+ @Warning-1 ~ @Warning-7 // 警告状态色
120
+ @Danger-1 ~ @Danger-7 // 危险状态色
121
+ ```
122
+
123
+ ### 类名规范
124
+ - 使用 kebab-case(短横线分隔)
125
+ - 组件容器用 `-container` 后缀
126
+ - 子元素用 `-item`、`-content`、`-header` 等后缀
127
+
128
+ ```less
129
+ .micro-app-container {
130
+ .micro-app-loading { }
131
+ .micro-app-content { }
132
+ .micro-app-error { }
133
+ }
134
+ ```
135
+
136
+ ## 文件组织
137
+
138
+ ### 页面目录结构
139
+ 复杂页面应拆分到独立文件夹:
140
+
141
+ ```
142
+ pages/
143
+ ├── Home/
144
+ │ ├── index.tsx # 主组件
145
+ │ ├── index.less # 样式
146
+ │ └── components/ # 页面私有组件
147
+ │ ├── Header.tsx
148
+ │ └── List.tsx
149
+ ```
150
+
151
+ ### 公共组件
152
+ 放置在 `src/components/` 目录,每个组件一个文件夹:
153
+
154
+ ```
155
+ components/
156
+ ├── MicroAppLoader/
157
+ │ ├── index.tsx
158
+ │ └── index.less
159
+ ├── IconFont/
160
+ │ └── index.tsx
161
+ ```
162
+
163
+ ## 导入顺序
164
+
165
+ ```typescript
166
+ // 1. React 及其生态
167
+ import React, { useState, useEffect } from 'react';
168
+ import { useLocation } from '@umijs/max';
169
+
170
+ // 2. 第三方库
171
+ import { Button, Modal } from '@arco-design/web-react';
172
+ import dayjs from 'dayjs';
173
+
174
+ // 3. 项目内部模块(使用 @ 别名)
175
+ import { request } from '@/common/request';
176
+ import { useTheme } from '@/hooks';
177
+
178
+ // 4. 相对路径导入
179
+ import Header from './components/Header';
180
+
181
+ // 5. 样式文件
182
+ import './index.less';
183
+ ```
184
+
185
+ ## 注释规范
186
+
187
+ ### 函数注释
188
+ ```typescript
189
+ /**
190
+ * 判断页面加载类型
191
+ * 有 htmlUrl 或 jsUrls 时使用 qiankun 微应用加载
192
+ * @param page 页面配置
193
+ * @returns 'internal' | 'microapp'
194
+ */
195
+ const getLoadType = (page: MenuItem['page']): 'internal' | 'microapp' => {
196
+ // ...
197
+ };
198
+ ```
199
+
200
+ ### 关键逻辑注释
201
+ ```typescript
202
+ // 如果有匹配的动态路由配置且需要加载微应用
203
+ if (currentRoute?.loadType === 'microapp' && currentRoute.entry) {
204
+ return <MicroAppLoader entry={currentRoute.entry} name={currentRoute.path} />;
205
+ }
206
+ ```
@@ -0,0 +1,111 @@
1
+ ---
2
+ description: Git 提交规范 - Conventional Commits 格式
3
+ globs: []
4
+ ---
5
+
6
+ # Git 提交规范
7
+
8
+ ## 格式
9
+
10
+ ```
11
+ type(scope): subject
12
+ ```
13
+
14
+ - **type**: 必填,提交类型
15
+ - **scope**: 可选,影响范围(模块、页面、包名等)
16
+ - **subject**: 必填,简短描述(1-50 字符)
17
+
18
+ ## 提交类型
19
+
20
+ | 类型 | 说明 | 示例 |
21
+ |------|------|------|
22
+ | `feat` | 新功能 | `feat(用户): 添加用户注册功能` |
23
+ | `fix` | Bug 修复 | `fix(表格): 修复分页显示问题` |
24
+ | `docs` | 文档更新 | `docs(API): 更新接口文档` |
25
+ | `style` | 代码格式(不影响功能) | `style(组件): 调整按钮样式` |
26
+ | `refactor` | 重构 | `refactor(auth): 重构认证服务` |
27
+ | `perf` | 性能优化 | `perf(列表): 优化渲染性能` |
28
+ | `test` | 测试相关 | `test(单元测试): 添加用户服务测试` |
29
+ | `build` | 构建系统或外部依赖 | `build(webpack): 升级依赖` |
30
+ | `ci` | CI 配置 | `ci(github): 添加自动部署` |
31
+ | `chore` | 其他杂项 | `chore(依赖): 更新依赖包` |
32
+ | `wip` | 开发中 | `wip(功能): 功能开发中` |
33
+ | `release` | 版本发布 | `release: v1.0.0` |
34
+ | `deps` | 依赖更新 | `deps: 升级 React 到 18.2` |
35
+ | `revert` | 回滚 | `revert: 回滚上一次提交` |
36
+
37
+ ## 正确示例
38
+
39
+ ```bash
40
+ # 中文(推荐)
41
+ feat(用户管理): 添加用户删除功能
42
+ fix(表格): 修复分页显示问题
43
+ docs(API): 更新接口文档
44
+ style(组件): 调整按钮样式
45
+ refactor(服务): 重构用户服务逻辑
46
+ chore(依赖): 更新项目依赖包
47
+ perf(性能): 优化列表渲染性能
48
+
49
+ # 英文
50
+ feat(table): 支持列宽调整
51
+ fix(core): 处理失去焦点时发生的事件 (close #28)
52
+ chore(release): 更新日志
53
+ ```
54
+
55
+ ## 常见错误
56
+
57
+ ```bash
58
+ # ❌ 错误:缺少 type
59
+ 添加用户功能
60
+
61
+ # ❌ 错误:type 不在允许列表中
62
+ add(user): 添加用户功能
63
+
64
+ # ❌ 错误:subject 为空
65
+ feat:
66
+
67
+ # ❌ 错误:subject 过长(超过50字符)
68
+ feat(user): 这是一个非常非常非常非常非常非常非常非常非常非常长的提交信息
69
+
70
+ # ✅ 正确
71
+ feat(user): 添加用户注册功能
72
+ ```
73
+
74
+ ## Scope 命名
75
+
76
+ - 使用短横线连接多个单词:`user-center`、`micro-app`
77
+ - 可以使用中文:`用户管理`、`表格`
78
+ - 建议与模块/目录名对应
79
+
80
+ ## 特殊情况
81
+
82
+ ### 合并分支
83
+ 允许以 `Merge` 开头:
84
+ ```bash
85
+ Merge branch 'feature/user' into main
86
+ ```
87
+
88
+ ### 回滚提交
89
+ 允许以 `Revert` 开头:
90
+ ```bash
91
+ Revert "feat(user): 添加用户功能"
92
+ ```
93
+
94
+ ### 版本发布
95
+ 允许以 `Version` 开头:
96
+ ```bash
97
+ Version 1.0.0
98
+ ```
99
+
100
+ ## 校验机制
101
+
102
+ - **钩子**: `.husky/commit-msg`
103
+ - **工具**: `npx --no-install max verify-commit`
104
+ - **配置**: `.commitlintrc.js`
105
+
106
+ 提交前会自动校验消息格式,不符合规范将被拒绝。
107
+
108
+ ## 相关链接
109
+
110
+ - [Conventional Commits](https://www.conventionalcommits.org/)
111
+ - [Angular Commit Guidelines](https://github.com/angular/angular/blob/master/CONTRIBUTING.md#commit)