generator-mico-cli 0.2.1 → 0.2.2-8.beta.1

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 (159) hide show
  1. package/README.md +199 -15
  2. package/bin/mico.js +232 -27
  3. package/generators/micro-react/index.js +200 -18
  4. package/generators/micro-react/meta.json +13 -0
  5. package/generators/micro-react/templates/.commitlintrc.js +1 -0
  6. package/generators/micro-react/templates/.cursor/rules/always-read-docs.mdc +14 -4
  7. package/generators/micro-react/templates/.cursor/rules/cicd-deploy.mdc +10 -8
  8. package/generators/micro-react/templates/.cursor/rules/coding-conventions.mdc +1 -1
  9. package/generators/micro-react/templates/.cursor/rules/development-guide.mdc +3 -4
  10. package/generators/micro-react/templates/.cursor/rules/layout-app.mdc +38 -31
  11. package/generators/micro-react/templates/.cursor/rules/project-overview.mdc +7 -4
  12. package/generators/micro-react/templates/.cursor/rules/theme-system.mdc +10 -12
  13. package/generators/micro-react/templates/.eslintrc.js +25 -1
  14. package/generators/micro-react/templates/AGENTS.md +5 -2
  15. package/generators/micro-react/templates/CICD/before_build.sh +76 -0
  16. package/generators/micro-react/templates/CICD/start_dev.sh +27 -3
  17. package/generators/micro-react/templates/CICD/start_prod.sh +26 -3
  18. package/generators/micro-react/templates/CICD/start_test.sh +28 -3
  19. package/generators/micro-react/templates/CICD/wangsu_fresh_dev.sh +4 -4
  20. package/generators/micro-react/templates/CICD/wangsu_fresh_prod.sh +4 -4
  21. package/generators/micro-react/templates/CICD/wangsu_fresh_test.sh +4 -4
  22. package/generators/micro-react/templates/CLAUDE.md +16 -9
  23. package/generators/micro-react/templates/README.md +42 -4
  24. package/generators/micro-react/templates/_gitignore +4 -0
  25. package/generators/micro-react/templates/_npmrc +4 -0
  26. package/generators/micro-react/templates/apps/layout/config/config.dev.ts +32 -16
  27. package/generators/micro-react/templates/apps/layout/config/config.prod.development.ts +24 -29
  28. package/generators/micro-react/templates/apps/layout/config/config.prod.testing.ts +25 -6
  29. package/generators/micro-react/templates/apps/layout/config/config.prod.ts +16 -7
  30. package/generators/micro-react/templates/apps/layout/config/config.ts +27 -4
  31. package/generators/micro-react/templates/apps/layout/config/routes.ts +5 -5
  32. package/generators/micro-react/templates/apps/layout/docs/arch-/346/227/245/345/277/227/344/270/216/345/270/270/351/207/217.md +2 -2
  33. package/generators/micro-react/templates/apps/layout/docs/common-intl.md +372 -0
  34. package/generators/micro-react/templates/apps/layout/docs/feat-/346/236/204/345/273/272define/344/270/216/345/205/215/350/256/244/350/257/201/345/210/235/345/247/213/346/200/201.md +44 -0
  35. package/generators/micro-react/templates/apps/layout/docs/feature-404/351/241/265/351/235/242.md +103 -0
  36. package/generators/micro-react/templates/apps/layout/docs/feature-/344/270/273/351/242/230/350/211/262/345/210/207/346/215/242.md +22 -26
  37. package/generators/micro-react/templates/apps/layout/docs/feature-/345/276/256/345/211/215/347/253/257/346/250/241/345/274/217.md +185 -28
  38. package/generators/micro-react/templates/apps/layout/docs/feature-/350/217/234/345/215/225/346/235/203/351/231/220/346/216/247/345/210/266.md +308 -63
  39. package/generators/micro-react/templates/apps/layout/docs/feature-/350/267/257/347/224/261/344/270/216/350/217/234/345/215/225/350/247/243/350/200/246.md +179 -0
  40. package/generators/micro-react/templates/apps/layout/docs/fix-SSO/346/227/240/351/231/220/351/207/215/345/256/232/345/220/221.md +88 -0
  41. package/generators/micro-react/templates/apps/layout/docs/utils-timezone.md +324 -0
  42. package/generators/micro-react/templates/apps/layout/mock/api.mock.ts +81 -61
  43. package/generators/micro-react/templates/apps/layout/mock/menus.ts +114 -4
  44. package/generators/micro-react/templates/apps/layout/mock/pages.ts +86 -0
  45. package/generators/micro-react/templates/apps/layout/package.json +7 -4
  46. package/generators/micro-react/templates/apps/layout/src/app.tsx +111 -76
  47. package/generators/micro-react/templates/apps/layout/src/common/auth/index.ts +3 -0
  48. package/generators/micro-react/templates/apps/layout/src/common/helpers.ts +177 -0
  49. package/generators/micro-react/templates/apps/layout/src/common/locale.ts +22 -17
  50. package/generators/micro-react/templates/apps/layout/src/common/menu/parser.ts +192 -42
  51. package/generators/micro-react/templates/apps/layout/src/common/menu/types.ts +69 -5
  52. package/generators/micro-react/templates/apps/layout/src/common/micro/index.ts +34 -0
  53. package/generators/micro-react/templates/apps/layout/src/common/micro-prefetch.ts +109 -0
  54. package/generators/micro-react/templates/apps/layout/src/common/portal-data.ts +45 -0
  55. package/generators/micro-react/templates/apps/layout/src/common/request/config.ts +72 -10
  56. package/generators/micro-react/templates/apps/layout/src/common/request/index.ts +2 -2
  57. package/generators/micro-react/templates/apps/layout/src/common/request/interceptors.ts +31 -3
  58. package/generators/micro-react/templates/apps/layout/src/common/request/sso.ts +29 -11
  59. package/generators/micro-react/templates/apps/layout/src/common/request/url-resolver.ts +1 -1
  60. package/generators/micro-react/templates/apps/layout/src/common/route-guard.ts +345 -0
  61. package/generators/micro-react/templates/apps/layout/src/common/theme.ts +2 -4
  62. package/generators/micro-react/templates/apps/layout/src/common/upload/oss.ts +3 -4
  63. package/generators/micro-react/templates/apps/layout/src/common/upload/types.ts +1 -1
  64. package/generators/micro-react/templates/apps/layout/src/common/uploadFiles.ts +1 -1
  65. package/generators/micro-react/templates/apps/layout/src/components/AppTabs/index.less +8 -3
  66. package/generators/micro-react/templates/apps/layout/src/components/AppTabs/index.tsx +25 -8
  67. package/generators/micro-react/templates/apps/layout/src/components/HeaderDropdown/index.tsx +20 -0
  68. package/generators/micro-react/templates/apps/layout/src/components/IconFont/index.tsx +5 -6
  69. package/generators/micro-react/templates/apps/layout/src/components/MicroAppLoader/index.less +21 -6
  70. package/generators/micro-react/templates/apps/layout/src/components/MicroAppLoader/index.tsx +83 -149
  71. package/generators/micro-react/templates/apps/layout/src/components/MicroAppLoader/micro-app-manager.ts +569 -0
  72. package/generators/micro-react/templates/apps/layout/src/components/RightContent/AvatarDropdown.tsx +383 -0
  73. package/generators/micro-react/templates/apps/layout/src/components/RightContent/avatar-dropdown.less +35 -0
  74. package/generators/micro-react/templates/apps/layout/src/components/RightContent/index.ts +2 -0
  75. package/generators/micro-react/templates/apps/layout/src/constants/index.ts +170 -6
  76. package/generators/micro-react/templates/apps/layout/src/global.less +18 -9
  77. package/generators/micro-react/templates/apps/layout/src/hooks/useMenu.ts +3 -2
  78. package/generators/micro-react/templates/apps/layout/src/hooks/useRoutePermissionRefresh.ts +72 -0
  79. package/generators/micro-react/templates/apps/layout/src/layouts/components/header/index.less +3 -1
  80. package/generators/micro-react/templates/apps/layout/src/layouts/components/header/index.tsx +10 -55
  81. package/generators/micro-react/templates/apps/layout/src/layouts/components/menu/index.less +34 -4
  82. package/generators/micro-react/templates/apps/layout/src/layouts/components/menu/index.tsx +24 -8
  83. package/generators/micro-react/templates/apps/layout/src/layouts/index.less +84 -13
  84. package/generators/micro-react/templates/apps/layout/src/layouts/index.tsx +156 -69
  85. package/generators/micro-react/templates/apps/layout/src/locales/en-US.ts +12 -0
  86. package/generators/micro-react/templates/apps/layout/src/locales/zh-CN.ts +12 -0
  87. package/generators/micro-react/templates/apps/layout/src/pages/403/index.tsx +8 -2
  88. package/generators/micro-react/templates/apps/layout/src/pages/404/index.tsx +78 -0
  89. package/generators/micro-react/templates/apps/layout/src/pages/Home/index.less +3 -0
  90. package/generators/micro-react/templates/apps/layout/src/pages/Home/index.tsx +7 -1
  91. package/generators/micro-react/templates/apps/layout/src/pages/User/Login/index.less +1 -1
  92. package/generators/micro-react/templates/apps/layout/src/pages/User/Login/index.tsx +3 -3
  93. package/generators/micro-react/templates/apps/layout/src/requestErrorConfig.ts +1 -1
  94. package/generators/micro-react/templates/apps/layout/src/services/config/index.ts +63 -0
  95. package/generators/micro-react/templates/apps/layout/src/services/config/type.ts +30 -0
  96. package/generators/micro-react/templates/apps/layout/src/services/user.ts +29 -2
  97. package/generators/micro-react/templates/apps/layout/tailwind.config.js +3 -0
  98. package/generators/micro-react/templates/deployDesc.md +3 -3
  99. package/generators/micro-react/templates/dev.preset.json +14 -0
  100. package/generators/micro-react/templates/docs/dev-preset.md +130 -0
  101. package/generators/micro-react/templates/package.json +21 -6
  102. package/generators/micro-react/templates/packages/common-intl/README.md +427 -0
  103. package/generators/micro-react/templates/packages/common-intl/package.json +34 -0
  104. package/generators/micro-react/templates/packages/common-intl/src/index.ts +7 -0
  105. package/generators/micro-react/templates/packages/common-intl/src/indexedDBUtils.ts +51 -0
  106. package/generators/micro-react/templates/packages/common-intl/src/intl.ts +50 -0
  107. package/generators/micro-react/templates/packages/common-intl/src/utils.ts +482 -0
  108. package/generators/micro-react/templates/packages/common-intl/tsconfig.json +22 -0
  109. package/generators/micro-react/templates/packages/common-intl/vite.config.ts +25 -0
  110. package/generators/micro-react/templates/scripts/apply-sentry-plugin.ts +45 -0
  111. package/generators/micro-react/templates/scripts/collect-dist.js +10 -0
  112. package/generators/micro-react/templates/scripts/dev-preset.js +265 -0
  113. package/generators/micro-react/templates/scripts/dev-preset.schema.json +39 -0
  114. package/generators/micro-react/templates/turbo.json +4 -1
  115. package/generators/subapp-react/index.js +326 -40
  116. package/generators/subapp-react/meta.json +10 -0
  117. package/generators/subapp-react/templates/homepage/.env +2 -1
  118. package/generators/subapp-react/templates/homepage/README.md +3 -3
  119. package/generators/subapp-react/templates/homepage/config/config.dev.ts +14 -7
  120. package/generators/subapp-react/templates/homepage/config/config.prod.development.ts +16 -5
  121. package/generators/subapp-react/templates/homepage/config/config.prod.testing.ts +16 -5
  122. package/generators/subapp-react/templates/homepage/config/config.prod.ts +14 -5
  123. package/generators/subapp-react/templates/homepage/config/config.ts +21 -0
  124. package/generators/subapp-react/templates/homepage/config/routes.ts +2 -2
  125. package/generators/subapp-react/templates/homepage/mock/api.mock.ts +2 -2
  126. package/generators/subapp-react/templates/homepage/package.json +7 -4
  127. package/generators/subapp-react/templates/homepage/src/app.tsx +18 -27
  128. package/generators/subapp-react/templates/homepage/src/common/request.ts +29 -2
  129. package/generators/subapp-react/templates/homepage/src/global.less +6 -5
  130. package/generators/subapp-react/templates/homepage/src/pages/index.less +3 -3
  131. package/generators/subapp-react/templates/homepage/src/pages/index.tsx +99 -60
  132. package/generators/subapp-react/templates/homepage/src/styles/theme.less +1 -1
  133. package/generators/subapp-umd/ignore-list.json +5 -0
  134. package/generators/subapp-umd/index.js +309 -0
  135. package/generators/subapp-umd/meta.json +11 -0
  136. package/generators/subapp-umd/templates/README.md +94 -0
  137. package/generators/subapp-umd/templates/package.json +35 -0
  138. package/generators/subapp-umd/templates/public/index.html +34 -0
  139. package/generators/subapp-umd/templates/src/App.less +15 -0
  140. package/generators/subapp-umd/templates/src/App.tsx +13 -0
  141. package/generators/subapp-umd/templates/src/index.ts +2 -0
  142. package/generators/subapp-umd/templates/tsconfig.json +27 -0
  143. package/generators/subapp-umd/templates/webpack.config.js +70 -0
  144. package/lib/utils.js +332 -2
  145. package/package.json +15 -2
  146. package/generators/micro-react/templates/apps/layout/mock/menus.json +0 -100
  147. package/generators/micro-react/templates/apps/layout/src/common/constants.ts +0 -38
  148. package/generators/micro-react/templates/apps/layout/src/components/MicroAppLoader/container-manager.ts +0 -202
  149. package/generators/micro-react/templates/packages/shared-styles/README.md +0 -124
  150. package/generators/micro-react/templates/packages/shared-styles/arco-design-mobile-override.less +0 -91
  151. package/generators/micro-react/templates/packages/shared-styles/arco-override.less +0 -119
  152. package/generators/micro-react/templates/packages/shared-styles/index.d.ts +0 -44
  153. package/generators/micro-react/templates/packages/shared-styles/index.less +0 -13
  154. package/generators/micro-react/templates/packages/shared-styles/package.json +0 -30
  155. package/generators/micro-react/templates/packages/shared-styles/theme-inject.less +0 -10
  156. package/generators/micro-react/templates/packages/shared-styles/themes/dark/custom-var.less +0 -290
  157. package/generators/micro-react/templates/packages/shared-styles/themes/normal/custom-var.less +0 -269
  158. package/generators/micro-react/templates/packages/shared-styles/variables-only.less +0 -433
  159. package/generators/micro-react/templates/packages/shared-styles/variables.less +0 -452
@@ -1,202 +0,0 @@
1
- /**
2
- * 微应用容器管理器
3
- *
4
- * 核心策略:
5
- * 1. 容器在 document.body 中创建,与 React 生命周期解耦
6
- * 2. 激活时移动到占位元素内,参与正常文档流
7
- * 3. 停用时移回 body 并隐藏
8
- *
9
- * 这样既避免了 React unmount 时删除容器导致的竞态问题,
10
- * 又能让容器在激活时参与正常的 CSS 布局。
11
- *
12
- * @see https://github.com/umijs/qiankun/issues/2845
13
- */
14
-
15
- import type { MicroApp } from 'qiankun';
16
-
17
- // ============================================================================
18
- // 类型定义
19
- // ============================================================================
20
-
21
- type ContainerStatus = 'active' | 'hidden' | 'pending-delete';
22
-
23
- interface ContainerEntry {
24
- container: HTMLElement;
25
- microApp: MicroApp | null;
26
- status: ContainerStatus;
27
- deleteTimer: ReturnType<typeof setTimeout> | null;
28
- }
29
-
30
- // ============================================================================
31
- // 常量
32
- // ============================================================================
33
-
34
- /** 容器删除延迟(毫秒)- 给 qiankun 足够时间完成清理 */
35
- const DELETE_DELAY = 5000;
36
-
37
- /** CSS 类名 */
38
- const CSS_CLASS = {
39
- base: 'micro-app-container-managed',
40
- hidden: 'micro-app-container-managed--hidden',
41
- active: 'micro-app-container-managed--active',
42
- } as const;
43
-
44
- // ============================================================================
45
- // 状态
46
- // ============================================================================
47
-
48
- const containers = new Map<string, ContainerEntry>();
49
-
50
- // ============================================================================
51
- // 私有方法
52
- // ============================================================================
53
-
54
- function createContainer(appName: string): HTMLElement {
55
- const container = document.createElement('div');
56
- container.id = `micro-app-${appName}`;
57
- container.className = `${CSS_CLASS.base} ${CSS_CLASS.hidden}`;
58
- document.body.appendChild(container);
59
- return container;
60
- }
61
-
62
- // ============================================================================
63
- // 公开 API
64
- // ============================================================================
65
-
66
- /**
67
- * 获取或创建容器
68
- */
69
- export function getContainer(appName: string): HTMLElement {
70
- let entry = containers.get(appName);
71
-
72
- if (entry) {
73
- // 取消待删除的计时器(容器被复用)
74
- if (entry.deleteTimer) {
75
- clearTimeout(entry.deleteTimer);
76
- entry.deleteTimer = null;
77
- }
78
- entry.status = 'hidden';
79
- return entry.container;
80
- }
81
-
82
- // 创建新容器
83
- const container = createContainer(appName);
84
- entry = {
85
- container,
86
- microApp: null,
87
- status: 'hidden',
88
- deleteTimer: null,
89
- };
90
- containers.set(appName, entry);
91
-
92
- return container;
93
- }
94
-
95
- /**
96
- * 激活容器:移动到占位元素内,参与正常文档流
97
- */
98
- export function activateContainer(appName: string, target: HTMLElement): void {
99
- const entry = containers.get(appName);
100
- if (!entry) return;
101
-
102
- const { container } = entry;
103
-
104
- // 移动容器到占位元素内(参与文档流)
105
- target.appendChild(container);
106
-
107
- // 切换样式
108
- container.classList.remove(CSS_CLASS.hidden);
109
- container.classList.add(CSS_CLASS.active);
110
-
111
- entry.status = 'active';
112
- }
113
-
114
- /**
115
- * 停用容器:移回 body 并隐藏
116
- */
117
- export function deactivateContainer(appName: string): void {
118
- const entry = containers.get(appName);
119
- if (!entry) return;
120
-
121
- const { container } = entry;
122
-
123
- // 移回 body(脱离 React 树)
124
- document.body.appendChild(container);
125
-
126
- // 切换样式
127
- container.classList.remove(CSS_CLASS.active);
128
- container.classList.add(CSS_CLASS.hidden);
129
-
130
- entry.status = 'hidden';
131
- }
132
-
133
- /**
134
- * 设置微应用实例
135
- */
136
- export function setMicroApp(appName: string, microApp: MicroApp): void {
137
- const entry = containers.get(appName);
138
- if (entry) {
139
- entry.microApp = microApp;
140
- }
141
- }
142
-
143
- /**
144
- * 获取微应用实例
145
- */
146
- export function getMicroApp(appName: string): MicroApp | null {
147
- return containers.get(appName)?.microApp ?? null;
148
- }
149
-
150
- /**
151
- * 安全卸载微应用并安排容器延迟删除
152
- */
153
- export async function unmountApp(appName: string): Promise<void> {
154
- const entry = containers.get(appName);
155
- if (!entry) return;
156
-
157
- const { microApp } = entry;
158
-
159
- if (microApp) {
160
- entry.microApp = null;
161
-
162
- // 等待各阶段完成再卸载
163
- try {
164
- await microApp.loadPromise;
165
- await microApp.bootstrapPromise;
166
- await microApp.mountPromise;
167
- } catch {
168
- // 忽略
169
- }
170
-
171
- try {
172
- await microApp.unmount();
173
- } catch {
174
- // 忽略
175
- }
176
- }
177
-
178
- // 安排延迟删除
179
- if (!entry.deleteTimer) {
180
- entry.status = 'pending-delete';
181
- entry.deleteTimer = setTimeout(() => {
182
- deleteContainer(appName);
183
- }, DELETE_DELAY);
184
- }
185
- }
186
-
187
- /**
188
- * 删除容器
189
- */
190
- function deleteContainer(appName: string): void {
191
- const entry = containers.get(appName);
192
- if (!entry) return;
193
-
194
- // 只删除 pending-delete 状态的容器(未被重新激活)
195
- if (entry.status === 'pending-delete') {
196
- entry.container.remove();
197
- containers.delete(appName);
198
- } else {
199
- // 容器被重新激活了,清除计时器引用
200
- entry.deleteTimer = null;
201
- }
202
- }
@@ -1,124 +0,0 @@
1
- # <%= packageScope %>/shared-styles
2
-
3
- 共享样式包 - 主题变量、CSS Variables、Less 变量。
4
-
5
- ## 功能
6
-
7
- - 🎨 **主题系统**:亮色/暗黑主题 CSS 变量
8
- - 📦 **Less 变量**:封装 CSS 变量的 Less 变量,提供编辑器提示
9
- - 🔗 **Arco Design 覆盖**:品牌色映射到 Arco Design 变量
10
-
11
- ## 安装
12
-
13
- ```bash
14
- # 在应用的 package.json 中添加依赖
15
- "dependencies": {
16
- "<%= packageScope %>/shared-styles": "workspace:*"
17
- }
18
-
19
- # 然后运行
20
- pnpm install
21
- ```
22
-
23
- ## 使用方式
24
-
25
- ### 方式 1:主应用 - 导入全部
26
-
27
- 在主应用(layout)的 `global.less` 中导入入口文件:
28
-
29
- ```less
30
- @import '<%= packageScope %>/shared-styles';
31
- ```
32
-
33
- 这将导入:
34
- - 亮色主题 CSS 变量定义
35
- - 暗黑主题 CSS 变量定义
36
- - Arco Design 变量覆盖
37
- - Less 变量定义
38
-
39
- ### 方式 2:子应用 - 仅导入 Less 变量(推荐)⭐
40
-
41
- **子应用使用此方式避免重复打包 CSS 变量定义:**
42
-
43
- ```less
44
- @import '<%= packageScope %>/shared-styles/variables-only';
45
- ```
46
-
47
- 这将只导入 Less 变量,不包含 CSS 变量定义(约减少 5-10KB)。
48
- CSS 变量由主应用注入到 `body` 上,子应用自动继承。
49
-
50
- ### 方式 3:在组件样式中使用变量
51
-
52
- ```less
53
- // 子应用组件中
54
- @import '<%= packageScope %>/shared-styles/variables-only';
55
-
56
- .my-component {
57
- background-color: @color-fill-1;
58
- color: @color-text-2;
59
- border: 1px solid @color-border-2;
60
- }
61
- ```
62
-
63
- ## 文件结构
64
-
65
- ```
66
- packages/shared-styles/
67
- ├── index.less # 入口文件,导入全部(主应用用)
68
- ├── variables-only.less # 仅 Less 变量(子应用 global.less 用)⭐
69
- ├── theme-inject.less # 主题注入(子应用独立运行时用)⭐
70
- ├── variables.less # Less 变量 + 主题导入
71
- ├── arco-override.less # Arco Design 变量覆盖
72
- └── themes/
73
- ├── normal/
74
- │ └── custom-var.less # 亮色主题 CSS 变量
75
- └── dark/
76
- └── custom-var.less # 暗黑主题 CSS 变量
77
- ```
78
-
79
- ## 主要变量
80
-
81
- ### 品牌色
82
- | 变量 | 说明 |
83
- |------|------|
84
- | `@Brand1-1` ~ `@Brand1-7` | 品牌主色系列 |
85
- | `@Brand2-1` ~ `@Brand2-7` | 品牌辅助色系列 |
86
-
87
- ### 中性色
88
- | 变量 | 说明 |
89
- |------|------|
90
- | `@color-text-1` ~ `@color-text-5` | 文字颜色 |
91
- | `@color-fill-1` ~ `@color-fill-5` | 填充颜色 |
92
- | `@color-border-1` ~ `@color-border-4` | 边框颜色 |
93
-
94
- ### 功能色
95
- | 变量 | 说明 |
96
- |------|------|
97
- | `@Success-1` ~ `@Success-7` | 成功状态色 |
98
- | `@Warning-1` ~ `@Warning-7` | 警告状态色 |
99
- | `@Danger-1` ~ `@Danger-7` | 危险状态色 |
100
-
101
- ## 微前端子应用配置
102
-
103
- > 详细配置指南请参考 [主题色切换文档 - 子应用适配](../../apps/layout/docs/feature-主题色切换.md#微前端子应用主题适配)
104
-
105
- **快速配置:**
106
-
107
- ```less
108
- // global.less - 仅导入 Less 变量
109
- @import '<%= packageScope %>/shared-styles/variables-only';
110
- ```
111
-
112
- ```typescript
113
- // app.tsx - 开发环境条件注入(避免生产打包主题)
114
- if (process.env.NODE_ENV === 'development') {
115
- if (typeof window !== 'undefined' && !window.__POWERED_BY_QIANKUN__) {
116
- import('./styles/theme.less');
117
- }
118
- }
119
- ```
120
-
121
- ## 相关文档
122
-
123
- - [主题色切换](../../apps/layout/docs/feature-主题色切换.md) - 主题系统详解与子应用适配
124
- - [微前端模式](../../apps/layout/docs/feature-微前端模式.md) - qiankun 架构说明
@@ -1,91 +0,0 @@
1
- @import "./variables.less";
2
-
3
- /*
4
-
5
- 以下注释变量参考:
6
- @see https://github.com/arco-design/arco-design-mobile/blob/4d8aa4656fb18a5490d56677a31255fd48ed2b24/packages/arcodesign/tokens/app/arcodesign/default/index.less#L7
7
-
8
- @background-color: #FFFFFF;
9
- @dark-background-color: #17171A;
10
- @container-background-color: #FFFFFF;
11
- @dark-container-background-color: #232324;
12
- @card-background-color: #F7F8FA;
13
- @dark-card-background-color: hsla(0, 0%, 100%, 0.08);
14
- @font-color: #1d2129;
15
- @dark-font-color: #f6f6f6;
16
- @sub-font-color: #4e5969;
17
- @dark-sub-font-color: #c5c5c5;
18
- @sub-info-font-color: #86909c;
19
- @dark-sub-info-font-color: #929293;
20
- @line-color: #e5e6eb;
21
- @dark-line-color: #484849;
22
- @lighter-line-color: #f2f3f5;
23
- @dark-lighter-line-color: #2e2e30;
24
- @primary-color: #165DFF;
25
- @dark-primary-color: #3C7EFF;
26
- @primary-disabled-color: #94BFFF;
27
- @dark-primary-disabled-color: #0E32A6;
28
- @lighter-primary-color: #E8F3FF;
29
- @dark-lighter-primary-color: #000D4D;
30
- @danger-color: #F53F3F;
31
- @dark-danger-color: #F76965;
32
- @warning-color: #FF7D00;
33
- @dark-warning-color: #FF9626;
34
- @success-color: #00B42A;
35
- @dark-success-color: #27C346;
36
- @disabled-color: #c9cdd4;
37
- @dark-disabled-color: #5f5f60;
38
- @mask-background: rgba(0, 0, 0, 0.6);
39
- @mask-content-color: #FFFFFF;
40
- @dark-mask-content-color: rgba(255, 255, 255, 0.9);
41
- @mask-content-background: #FFFFFF;
42
- @dark-mask-content-background: #2A2A2B;
43
-
44
- */
45
-
46
- :root {
47
- --background-color: @color-text-5;
48
- --dark-background-color: @color-text-1;
49
- --container-background-color: @color-text-5;
50
- --dark-container-background-color: @color-text-5;
51
- --card-background-color: @color-text-5;
52
- --dark-card-background-color: @color-text-1;
53
- --font-color: @color-text-2;
54
- --dark-font-color: @color-text-2;
55
- // --sub-font-color
56
- // --dark-sub-font-color
57
- // --sub-info-font-color
58
- // --dark-sub-info-font-color
59
- --line-color: @color-border-2;
60
- --dark-line-color: @color-border-2;
61
- // --lighter-line-color
62
- // --dark-lighter-line-color
63
- --primary-color: @Brand1-6;
64
- --dark-primary-color: @Brand1-6;
65
- --primary-disabled-color: @Brand1-3;
66
- --dark-primary-disabled-color: @Brand1-3;
67
- // --lighter-primary-color
68
- --dark-lighter-primary-color: @color-text-1; // TODO: 设计稿里面亮色主题下这里是用 color-text-5 看起来怪怪的,暂时用 color-text-1 代替
69
- --danger-color: @Danger-6;
70
- --dark-danger-color: @Danger-6;
71
- --warning-color: @Warning-6;
72
- --dark-warning-color: @Warning-6;
73
- --success-color: @Success-6;
74
- --dark-success-color: @Success-6;
75
- --disabled-color: @color-fill-3;
76
- --dark-disabled-color: @color-fill-3;
77
- // --mask-background
78
- --mask-content-color: @color-text-5;
79
- --dark-mask-content-color: @color-text-1;
80
- --mask-content-background: @color-text-5;
81
- --dark-mask-content-background: @color-text-5;
82
-
83
- --toast-background: @color-text-1;
84
- &.dark {
85
- --toast-background: @color-text-3;
86
- }
87
-
88
- --button-radius: @border-radius-lg;
89
- --toast-border-radius: @border-radius-lg;
90
- --dark-toast-text-color: @color-text-5;
91
- }
@@ -1,119 +0,0 @@
1
- // ==================== Arco Design 变量覆盖 ====================
2
- // 将 custom-var.less 中定义的 brand1-x 变量覆盖到 Arco Design 的 primary 和 link 变量
3
- // 参考文档:https://arco.design/react/docs/token
4
- //
5
- // 注意:使用属性选择器提高优先级(特异性 0,1,1 > Arco 的 0,0,1)
6
- // 确保覆盖 arco.css 中的默认蓝色主题变量
7
- // body:not([arco-theme]) 匹配亮色主题,body[arco-theme='dark'] 匹配暗色主题
8
-
9
- body:not([arco-theme]),
10
- body[arco-theme='dark'] {
11
- // ==================== Primary 颜色覆盖 ====================
12
- // 将 Brand1-x 映射到 primary-x,使用 CSS 变量引用(RGB 三分量格式)
13
- --primary-1: var(--Brand1-1, 242 235 255);
14
- --primary-2: var(--Brand1-2, 220 198 255);
15
- --primary-3: var(--Brand1-3, 195 163 255);
16
- --primary-4: var(--Brand1-4, 169 129 255);
17
- --primary-5: var(--Brand1-5, 140 94 255);
18
- --primary-6: var(--Brand1-6, 110 60 255);
19
- --primary-7: var(--Brand1-7, 75 37 210);
20
-
21
- // ==================== Link 颜色覆盖 ====================
22
- // 将 Brand1-x 映射到 link-x,使用 CSS 变量引用(RGB 三分量格式)
23
- --link-1: var(--Brand1-1, 242 235 255);
24
- --link-2: var(--Brand1-2, 220 198 255);
25
- --link-3: var(--Brand1-3, 195 163 255);
26
- --link-4: var(--Brand1-4, 169 129 255);
27
- --link-5: var(--Brand1-5, 140 94 255);
28
- --link-6: var(--Brand1-6, 110 60 255);
29
- --link-7: var(--Brand1-7, 75 37 210);
30
-
31
- // ==================== Success 颜色覆盖 ====================
32
- // 将 Success-x 映射到 success-x,使用 CSS 变量引用(RGB 三分量格式)
33
- --success-1: var(--Success-1, 232 255 234);
34
- --success-2: var(--Success-2, 175 240 181);
35
- --success-3: var(--Success-3, 123 225 136);
36
- --success-5: var(--Success-5, 35 195 67);
37
- --success-6: var(--Success-6, 0 180 42);
38
- --success-7: var(--Success-7, 0 154 41);
39
-
40
- // ==================== Warning 颜色覆盖 ====================
41
- // 将 Warning-x 映射到 warning-x,使用 CSS 变量引用(RGB 三分量格式)
42
- --warning-1: var(--Warning-1, 255 247 232);
43
- --warning-2: var(--Warning-2, 255 228 186);
44
- --warning-3: var(--Warning-3, 255 207 139);
45
- --warning-5: var(--Warning-5, 255 154 46);
46
- --warning-6: var(--Warning-6, 255 125 0);
47
- --warning-7: var(--Warning-7, 255 154 46);
48
-
49
- // ==================== Danger 颜色覆盖 ====================
50
- // 将 Danger-x 映射到 danger-x,使用 CSS 变量引用(RGB 三分量格式)
51
- --danger-1: var(--Danger-1, 255 236 232);
52
- --danger-2: var(--Danger-2, 253 205 197);
53
- --danger-3: var(--Danger-3, 251 172 163);
54
- --danger-5: var(--Danger-5, 247 101 96);
55
- --danger-6: var(--Danger-6, 245 63 63);
56
- --danger-7: var(--Danger-7, 203 38 52);
57
-
58
- // ==================== Border radius ====================
59
- // 全部圆角都设置为8px
60
- --border-radius-small: 8px;
61
- --border-radius-medium: 8px;
62
- --border-radius-large: 8px;
63
- --color-bg-1: var(--color-text-5);
64
- --color-bg-2: var(--color-text-5);
65
- --color-bg-3: var(--color-text-5);
66
- --color-bg-4: var(--color-text-5);
67
- --color-bg-5: var(--color-text-5);
68
- --color-neutral-1: var(--color-fill-1);
69
- --color-neutral-2: var(--color-fill-2);
70
- --color-neutral-3: var(--color-fill-3);
71
- --color-neutral-4: var(--color-fill-4);
72
- --color-neutral-5: var(--color-fill-5);
73
- }
74
-
75
- .arco-drawer .arco-drawer-close-icon,
76
- .arco-modal .arco-modal-close-icon {
77
- font-size: 16px;
78
- }
79
-
80
- .arco-checkbox-mask {
81
- border-radius: 2px;
82
- }
83
-
84
- .arco-tree-node {
85
- border-radius: var(--border-radius-large);
86
- }
87
-
88
- .arco-btn-primary:not(.arco-btn-disabled) {
89
- background-color: rgb(var(--Brand1-6));
90
- color: white;
91
- }
92
-
93
- /**
94
- * 自定义滚动条样式
95
- * @see https: //jira-vywrajy.micoworld.net/browse/MP-630
96
- */
97
- .scrollbar-style() {
98
- &::-webkit-scrollbar {
99
- /* 滚动条宽度。必须指定宽度后,才能指定背景颜色 */
100
- width: 4px;
101
- height: 4px;
102
- }
103
-
104
- /* 滚动条轨道 */
105
- // *::-webkit-scrollbar-track {
106
- // background: @color-text-5;
107
- // border-radius: @border-radius-sm;
108
- // }
109
-
110
- /* 滚动条滑块 */
111
- &::-webkit-scrollbar-thumb {
112
- background: var(--color-fill-4);
113
- border-radius: 4px;
114
- }
115
- }
116
-
117
- .arco-table-layout-fixed .arco-table-content-inner {
118
- .scrollbar-style();
119
- }
@@ -1,44 +0,0 @@
1
- /**
2
- * <%= packageScope %>/shared-styles 类型声明
3
- * 这些模块导出 Less 样式文件,无需具体类型导出
4
- */
5
-
6
- declare module '<%= packageScope %>/shared-styles' {
7
- const content: void;
8
- export default content;
9
- }
10
-
11
- declare module '<%= packageScope %>/shared-styles/variables' {
12
- const content: void;
13
- export default content;
14
- }
15
-
16
- declare module '<%= packageScope %>/shared-styles/variables-only' {
17
- const content: void;
18
- export default content;
19
- }
20
-
21
- declare module '<%= packageScope %>/shared-styles/theme-inject' {
22
- const content: void;
23
- export default content;
24
- }
25
-
26
- declare module '<%= packageScope %>/shared-styles/themes/normal' {
27
- const content: void;
28
- export default content;
29
- }
30
-
31
- declare module '<%= packageScope %>/shared-styles/themes/dark' {
32
- const content: void;
33
- export default content;
34
- }
35
-
36
- declare module '<%= packageScope %>/shared-styles/arco-override' {
37
- const content: void;
38
- export default content;
39
- }
40
-
41
- declare module '<%= packageScope %>/shared-styles/arco-design-mobile-override' {
42
- const content: void;
43
- export default content;
44
- }
@@ -1,13 +0,0 @@
1
- // ==================== 共享样式入口 ====================
2
- // 此文件作为 <%= packageScope %>/shared-styles 包的入口
3
- // 导入此文件即可获取所有主题变量和 Less 变量
4
-
5
- // 导入主题 CSS 变量(亮色 + 暗黑)
6
- @import './themes/normal/custom-var.less';
7
- @import './themes/dark/custom-var.less';
8
-
9
- // 导入 Arco Design 变量覆盖
10
- @import './arco-override.less';
11
-
12
- // 导入 Less 变量定义
13
- @import './variables.less';
@@ -1,30 +0,0 @@
1
- {
2
- "name": "<%= packageScope %>/shared-styles",
3
- "version": "0.0.1",
4
- "private": true,
5
- "description": "共享样式 - 主题变量、CSS Variables、Less 变量",
6
- "main": "index.less",
7
- "types": "index.d.ts",
8
- "exports": {
9
- ".": "./index.less",
10
- "./variables": "./variables.less",
11
- "./variables-only": "./variables-only.less",
12
- "./theme-inject": "./theme-inject.less",
13
- "./themes/normal": "./themes/normal/custom-var.less",
14
- "./themes/dark": "./themes/dark/custom-var.less",
15
- "./arco-override": "./arco-override.less",
16
- "./arco-design-mobile-override": "./arco-design-mobile-override.less"
17
- },
18
- "files": [
19
- "themes/",
20
- "*.less"
21
- ],
22
- "keywords": [
23
- "theme",
24
- "styles",
25
- "less",
26
- "css-variables",
27
- "mico"
28
- ],
29
- "author": "<%= author %>"
30
- }
@@ -1,10 +0,0 @@
1
- // ==================== 主题注入文件 ====================
2
- // 仅用于子应用独立运行时注入主题 CSS 变量
3
- // 作为微前端子应用运行时,不需要导入此文件(主应用已注入)
4
- //
5
- // 使用场景:子应用独立 dev 预览
6
-
7
- @import './themes/normal/custom-var.less';
8
- @import './themes/dark/custom-var.less';
9
- @import './arco-override.less';
10
-