create-tengits-app 1.1.0 → 1.1.2
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.
- package/README.md +322 -21
- package/bin/cli.js +260 -41
- package/bin/setup-ttos.js +1 -1
- package/package.json +11 -3
- package/packages/client/.env +14 -0
- package/packages/client/.env.pre +11 -0
- package/packages/client/.env.production +2 -0
- package/packages/client/.env.test +14 -0
- package/packages/client/README.lib.md +214 -0
- package/packages/client/README.md +3 -0
- package/packages/client/index.html +132 -0
- package/packages/client/package.json +40 -0
- package/packages/client/postcss.config.js +7 -0
- package/packages/client/rsbuild.config.ts +95 -0
- package/packages/client/src/AppNew.tsx +297 -0
- package/packages/client/src/components/MessageBellButton.tsx +148 -0
- package/packages/client/src/components/index.ts +1 -0
- package/packages/client/src/configSystemData.ts +25 -0
- package/packages/client/src/i18n.js +31 -0
- package/packages/client/src/index.jsx +13 -0
- package/packages/client/src/index.less +272 -0
- package/packages/client/src/menus.tsx +162 -0
- package/packages/client/src/pages/BIViewer/index.jsx +24 -0
- package/packages/client/src/pages/BIViewer/index.module.less +3 -0
- package/packages/client/src/pages/Example/index.tsx +102 -0
- package/packages/client/src/pages/ExcelViewer/index.module.less +3 -0
- package/packages/client/src/pages/ExcelViewer/index.tsx +29 -0
- package/packages/client/src/pages/Home/index.less +64 -0
- package/packages/client/src/pages/Home/index.tsx +149 -0
- package/packages/client/src/pages/Home/libs.ts +20 -0
- package/packages/client/src/pages/Home/top.tsx +85 -0
- package/packages/client/src/pages/Login/index.less +15 -0
- package/packages/client/src/pages/Login/index.tsx +166 -0
- package/packages/client/src/pages/LowEditorPreviewPage/index.tsx +18 -0
- package/packages/client/src/routes.tsx +250 -0
- package/packages/client/src/store.jsx +15 -0
- package/packages/client/src/types/client.d.ts +2 -0
- package/packages/client/src/utils/lazyLoad.tsx +65 -0
- package/packages/client/src/utils/request.js +11 -0
- package/packages/client/src/utils/uploadFileToCloud.js +65 -0
- package/packages/client/tailwind.config.js +34 -0
- package/packages/client/tsconfig.json +37 -0
- package/packages/main/package.json +0 -5
package/README.md
CHANGED
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
- 🔧 **开发工具** - ESLint、PostCSS 等完整工具链
|
|
23
23
|
- 📦 **Monorepo** - 基于 pnpm workspace 的包管理
|
|
24
24
|
- 🎯 **生产就绪** - 开箱即用的生产环境配置
|
|
25
|
+
- 🏢 **多项目支持** - 包含普通前端项目、文档管理系统和TTOS客户端项目
|
|
25
26
|
|
|
26
27
|
## 🚀 快速开始
|
|
27
28
|
|
|
@@ -92,51 +93,187 @@ pnpm create react-rsbuild-app
|
|
|
92
93
|
```
|
|
93
94
|
my-awesome-project/
|
|
94
95
|
├── packages/
|
|
95
|
-
│
|
|
96
|
+
│ ├── main/ # 普通前端项目
|
|
97
|
+
│ │ ├── src/
|
|
98
|
+
│ │ │ ├── components/ # 可复用组件
|
|
99
|
+
│ │ │ ├── pages/ # 页面组件
|
|
100
|
+
│ │ │ │ ├── Home/ # 首页
|
|
101
|
+
│ │ │ │ └── Login/ # 登录页
|
|
102
|
+
│ │ │ ├── styles/ # 样式文件
|
|
103
|
+
│ │ │ ├── types/ # TypeScript 类型定义
|
|
104
|
+
│ │ │ ├── utils/ # 工具函数
|
|
105
|
+
│ │ │ ├── App.tsx # 应用主组件
|
|
106
|
+
│ │ │ ├── index.jsx # 应用入口
|
|
107
|
+
│ │ │ ├── routes.tsx # 路由配置
|
|
108
|
+
│ │ │ └── menus.jsx # 菜单配置
|
|
109
|
+
│ │ ├── public/ # 静态资源
|
|
110
|
+
│ │ │ ├── locales/ # 国际化文件
|
|
111
|
+
│ │ │ └── ...
|
|
112
|
+
│ │ ├── package.json # 包配置文件
|
|
113
|
+
│ │ ├── rsbuild.config.ts # Rsbuild 配置
|
|
114
|
+
│ │ ├── tailwind.config.js # Tailwind 配置
|
|
115
|
+
│ │ └── tsconfig.json # TypeScript 配置
|
|
116
|
+
│ │
|
|
117
|
+
│ ├── docs/ # 产品全生命周期文档管理项目
|
|
118
|
+
│ │ ├── pages/ # 文档页面
|
|
119
|
+
│ │ │ ├── requirements/ # 需求文档
|
|
120
|
+
│ │ │ ├── designs/ # 设计文档
|
|
121
|
+
│ │ │ ├── api/ # 接口文档
|
|
122
|
+
│ │ │ ├── develop/ # 开发文档
|
|
123
|
+
│ │ │ ├── logs/ # 更改日志
|
|
124
|
+
│ │ │ └── test/ # 测试文档
|
|
125
|
+
│ │ ├── package.json # 文档项目配置
|
|
126
|
+
│ │ ├── vite.config.ts # Vite 配置
|
|
127
|
+
│ │ └── tsconfig.json # TypeScript 配置
|
|
128
|
+
│ │
|
|
129
|
+
│ └── client/ # TTOS客户端项目
|
|
96
130
|
│ ├── src/
|
|
97
|
-
│ │ ├── components/ #
|
|
98
|
-
│ │ ├── pages/ #
|
|
131
|
+
│ │ ├── components/ # 客户端组件
|
|
132
|
+
│ │ ├── pages/ # 客户端页面
|
|
99
133
|
│ │ │ ├── Home/ # 首页
|
|
100
|
-
│ │ │
|
|
101
|
-
│ │ ├──
|
|
102
|
-
│ │ ├──
|
|
134
|
+
│ │ │ ├── Login/ # 登录页
|
|
135
|
+
│ │ │ ├── BIViewer/ # BI查看器
|
|
136
|
+
│ │ │ ├── ExcelViewer/ # Excel查看器
|
|
137
|
+
│ │ │ └── Example/ # 示例页面
|
|
138
|
+
│ │ ├── types/ # 类型定义
|
|
103
139
|
│ │ ├── utils/ # 工具函数
|
|
104
|
-
│ │ ├──
|
|
140
|
+
│ │ ├── AppNew.tsx # 应用主组件
|
|
105
141
|
│ │ ├── index.jsx # 应用入口
|
|
106
142
|
│ │ ├── routes.tsx # 路由配置
|
|
107
|
-
│ │
|
|
108
|
-
│
|
|
109
|
-
│
|
|
110
|
-
│ │ └── ...
|
|
111
|
-
│ ├── package.json # 包配置文件
|
|
143
|
+
│ │ ├── menus.tsx # 菜单配置(由租户端创建)
|
|
144
|
+
│ │ └── configSystemData.ts # 系统配置
|
|
145
|
+
│ ├── package.json # 客户端配置
|
|
112
146
|
│ ├── rsbuild.config.ts # Rsbuild 配置
|
|
113
|
-
│ ├── tailwind.config.js # Tailwind 配置
|
|
114
147
|
│ └── tsconfig.json # TypeScript 配置
|
|
148
|
+
│
|
|
149
|
+
├── bin/ # 脚本目录
|
|
150
|
+
│ ├── cli.js # 脚手架主脚本
|
|
151
|
+
│ └── setup-ttos.js # TTOS项目依赖安装脚本
|
|
115
152
|
├── pnpm-workspace.yaml # pnpm workspace 配置
|
|
116
153
|
├── package.json # 根包配置
|
|
117
154
|
├── eslint.config.mjs # ESLint 配置
|
|
118
155
|
└── README.md # 项目说明
|
|
119
156
|
```
|
|
120
157
|
|
|
158
|
+
## 🏗️ 项目说明
|
|
159
|
+
|
|
160
|
+
### 📦 Main 项目 - 普通前端项目
|
|
161
|
+
|
|
162
|
+
**用途**:标准的 React 前端应用项目
|
|
163
|
+
|
|
164
|
+
**特点**:
|
|
165
|
+
- 基于 React 18 + Rsbuild + TypeScript
|
|
166
|
+
- 集成 Tailwind CSS + Ant Design
|
|
167
|
+
- 支持国际化(i18n)
|
|
168
|
+
- 响应式设计
|
|
169
|
+
- 完整的开发工具链
|
|
170
|
+
|
|
171
|
+
**适用场景**:
|
|
172
|
+
- 企业级前端应用开发
|
|
173
|
+
- 管理后台系统
|
|
174
|
+
- 用户界面应用
|
|
175
|
+
|
|
176
|
+
### 📚 Docs 项目 - 产品全生命周期文档管理
|
|
177
|
+
|
|
178
|
+
**用途**:完整的产品文档管理系统
|
|
179
|
+
|
|
180
|
+
**特点**:
|
|
181
|
+
- 基于 Vite + React + MDX
|
|
182
|
+
- 支持 Markdown 和 MDX 格式
|
|
183
|
+
- 自动生成文档站点
|
|
184
|
+
- 响应式文档界面
|
|
185
|
+
|
|
186
|
+
**包含模块**:
|
|
187
|
+
- **需求文档**:PRD、用户故事、功能规格
|
|
188
|
+
- **设计文档**:UI设计稿、设计规范、组件说明
|
|
189
|
+
- **接口文档**:API规范、请求响应示例
|
|
190
|
+
- **开发文档**:环境搭建、代码规范、部署指南
|
|
191
|
+
- **更改日志**:版本变更记录
|
|
192
|
+
- **测试文档**:测试计划、用例、报告
|
|
193
|
+
|
|
194
|
+
**适用场景**:
|
|
195
|
+
- 项目文档管理
|
|
196
|
+
- 技术文档维护
|
|
197
|
+
- 团队协作文档
|
|
198
|
+
|
|
199
|
+
### 🖥️ Client 项目 - TTOS客户端项目
|
|
200
|
+
|
|
201
|
+
**用途**:TTOS(腾路操作系统)客户端应用
|
|
202
|
+
|
|
203
|
+
**特点**:
|
|
204
|
+
- 必须安装TTOS项目依赖
|
|
205
|
+
- 根据接口服务地址显示不同客户端数据
|
|
206
|
+
- 客户端菜单由租户端创建
|
|
207
|
+
- 自定义开发只需在代码中配置路由
|
|
208
|
+
|
|
209
|
+
**核心功能**:
|
|
210
|
+
- 多租户支持
|
|
211
|
+
- 动态菜单配置
|
|
212
|
+
- 系统集成能力
|
|
213
|
+
- 可扩展的页面组件
|
|
214
|
+
|
|
215
|
+
**TTOS依赖项目**:
|
|
216
|
+
- **BI**:数据分析平台
|
|
217
|
+
- **Bisheng**:毕昇AI平台
|
|
218
|
+
- **liteFlow**:轻量级工作流引擎
|
|
219
|
+
- **saas**:SaaS服务平台
|
|
220
|
+
- **tuiLowCode**:TUI低代码平台
|
|
221
|
+
|
|
222
|
+
**适用场景**:
|
|
223
|
+
- 企业级客户端应用
|
|
224
|
+
- 多租户SaaS平台
|
|
225
|
+
- 集成多个子系统的统一客户端
|
|
226
|
+
|
|
121
227
|
## 🛠️ 可用脚本
|
|
122
228
|
|
|
123
229
|
在项目目录中,你可以运行:
|
|
124
230
|
|
|
125
|
-
###
|
|
126
|
-
版本:9.15.9
|
|
231
|
+
### 根目录脚本
|
|
127
232
|
|
|
128
233
|
### `pnpm start`
|
|
129
|
-
|
|
234
|
+
启动主项目开发服务器(packages/main)
|
|
130
235
|
|
|
131
236
|
### `pnpm build`
|
|
132
|
-
|
|
237
|
+
构建主项目生产版本
|
|
133
238
|
|
|
134
239
|
### `pnpm preview`
|
|
135
|
-
|
|
240
|
+
预览主项目生产构建版本
|
|
136
241
|
|
|
137
242
|
### `pnpm doctor`
|
|
138
243
|
检查项目配置和依赖
|
|
139
244
|
|
|
245
|
+
### `pnpm setup-ttos`
|
|
246
|
+
安装TTOS项目依赖(运行 bin/setup-ttos.js)
|
|
247
|
+
|
|
248
|
+
### 各项目独立脚本
|
|
249
|
+
|
|
250
|
+
#### Main 项目
|
|
251
|
+
```bash
|
|
252
|
+
cd packages/main
|
|
253
|
+
pnpm start # 启动开发服务器 (端口: 3013)
|
|
254
|
+
pnpm build # 构建生产版本
|
|
255
|
+
pnpm preview # 预览生产版本
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
#### Docs 项目
|
|
259
|
+
```bash
|
|
260
|
+
cd packages/docs
|
|
261
|
+
pnpm dev # 启动文档开发服务器
|
|
262
|
+
pnpm build # 构建文档站点
|
|
263
|
+
pnpm ssr # 服务端渲染构建
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
#### Client 项目
|
|
267
|
+
```bash
|
|
268
|
+
cd packages/client
|
|
269
|
+
pnpm start # 启动客户端开发服务器
|
|
270
|
+
pnpm start:test # 启动测试环境
|
|
271
|
+
pnpm start:pre # 启动预发布环境
|
|
272
|
+
pnpm build # 构建生产版本
|
|
273
|
+
pnpm build:test # 构建测试版本
|
|
274
|
+
pnpm build:pre # 构建预发布版本
|
|
275
|
+
```
|
|
276
|
+
|
|
140
277
|
## 🎨 技术栈
|
|
141
278
|
|
|
142
279
|
- **构建工具**: [Rsbuild](https://rsbuild.dev/) - 基于 Rspack 的高性能构建工具
|
|
@@ -186,6 +323,120 @@ module.exports = {
|
|
|
186
323
|
|
|
187
324
|
编辑 `packages/main/tsconfig.json` 来调整 TypeScript 设置。
|
|
188
325
|
|
|
326
|
+
## 🖥️ TTOS客户端项目使用指南
|
|
327
|
+
|
|
328
|
+
### 安装TTOS依赖
|
|
329
|
+
|
|
330
|
+
在开始使用Client项目之前,必须先安装TTOS项目依赖:
|
|
331
|
+
|
|
332
|
+
```bash
|
|
333
|
+
# 在项目根目录执行
|
|
334
|
+
pnpm setup-ttos
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
这个命令会:
|
|
338
|
+
1. 创建 `TTOS` 目录
|
|
339
|
+
2. 克隆所有TTOS相关项目(BI、Bisheng、liteFlow、saas、tuiLowCode)
|
|
340
|
+
3. 安装各项目的依赖
|
|
341
|
+
4. 建立全局链接关系
|
|
342
|
+
|
|
343
|
+
### 常见问题解决
|
|
344
|
+
|
|
345
|
+
#### 问题:Module not found: Can't resolve 'react/jsx-dev-runtime'
|
|
346
|
+
|
|
347
|
+
**原因**:Client项目缺少React依赖
|
|
348
|
+
|
|
349
|
+
**解决方案**:
|
|
350
|
+
```bash
|
|
351
|
+
# 进入client项目目录
|
|
352
|
+
cd packages/client
|
|
353
|
+
|
|
354
|
+
# 安装依赖
|
|
355
|
+
pnpm install
|
|
356
|
+
|
|
357
|
+
# 或者重新安装所有依赖
|
|
358
|
+
cd ../..
|
|
359
|
+
pnpm install
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
#### 问题:TTOS依赖未安装
|
|
363
|
+
|
|
364
|
+
**原因**:未运行TTOS安装脚本
|
|
365
|
+
|
|
366
|
+
**解决方案**:
|
|
367
|
+
```bash
|
|
368
|
+
# 在项目根目录执行
|
|
369
|
+
pnpm setup-ttos
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
### 客户端配置
|
|
373
|
+
|
|
374
|
+
#### 1. 系统配置
|
|
375
|
+
|
|
376
|
+
编辑 `packages/client/src/configSystemData.ts` 配置系统参数:
|
|
377
|
+
|
|
378
|
+
```typescript
|
|
379
|
+
// 根据环境变量配置不同的服务地址
|
|
380
|
+
const {
|
|
381
|
+
REACT_APP_SYSTEM_ID,
|
|
382
|
+
REACT_APP_PRE_BETA,
|
|
383
|
+
// ... 其他环境变量
|
|
384
|
+
} = import.meta.env;
|
|
385
|
+
|
|
386
|
+
export default function configSystemData() {
|
|
387
|
+
window.systemId = REACT_APP_SYSTEM_ID;
|
|
388
|
+
// 配置系统数据...
|
|
389
|
+
}
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
#### 2. 菜单配置
|
|
393
|
+
|
|
394
|
+
客户端菜单由租户端创建,在 `packages/client/src/menus.tsx` 中配置:
|
|
395
|
+
|
|
396
|
+
```typescript
|
|
397
|
+
// 菜单由后端接口动态获取
|
|
398
|
+
export async function getUserAndMenu({ cookie, tenantPara = {} }) {
|
|
399
|
+
// 获取用户信息和菜单数据
|
|
400
|
+
return await httpClient.post('/ttos/user/getUserInfo', {
|
|
401
|
+
applicationId: tenantPara.applicationId,
|
|
402
|
+
platformType: PlatformType.Client,
|
|
403
|
+
});
|
|
404
|
+
}
|
|
405
|
+
```
|
|
406
|
+
|
|
407
|
+
#### 3. 路由配置
|
|
408
|
+
|
|
409
|
+
自定义开发只需在 `packages/client/src/routes.tsx` 中配置路由:
|
|
410
|
+
|
|
411
|
+
```typescript
|
|
412
|
+
// 添加新的页面路由
|
|
413
|
+
const routes = [
|
|
414
|
+
{
|
|
415
|
+
path: '/your-page',
|
|
416
|
+
component: YourPageComponent,
|
|
417
|
+
},
|
|
418
|
+
// ... 其他路由
|
|
419
|
+
];
|
|
420
|
+
```
|
|
421
|
+
|
|
422
|
+
### 多环境支持
|
|
423
|
+
|
|
424
|
+
Client项目支持多环境配置:
|
|
425
|
+
|
|
426
|
+
- **开发环境**: `pnpm start`
|
|
427
|
+
- **测试环境**: `pnpm start:test`
|
|
428
|
+
- **预发布环境**: `pnpm start:pre`
|
|
429
|
+
|
|
430
|
+
### 页面组件
|
|
431
|
+
|
|
432
|
+
Client项目包含以下页面组件:
|
|
433
|
+
|
|
434
|
+
- **Home**: 首页
|
|
435
|
+
- **Login**: 登录页
|
|
436
|
+
- **BIViewer**: BI数据查看器
|
|
437
|
+
- **ExcelViewer**: Excel文件查看器
|
|
438
|
+
- **Example**: 示例页面
|
|
439
|
+
|
|
189
440
|
## 🌍 国际化
|
|
190
441
|
|
|
191
442
|
项目内置了完整的国际化支持:
|
|
@@ -202,16 +453,56 @@ module.exports = {
|
|
|
202
453
|
|
|
203
454
|
## 📦 部署
|
|
204
455
|
|
|
205
|
-
###
|
|
456
|
+
### 构建所有项目
|
|
206
457
|
```bash
|
|
458
|
+
# 构建主项目
|
|
207
459
|
pnpm build
|
|
460
|
+
|
|
461
|
+
# 构建文档项目
|
|
462
|
+
cd packages/docs && pnpm build
|
|
463
|
+
|
|
464
|
+
# 构建客户端项目
|
|
465
|
+
cd packages/client && pnpm build
|
|
208
466
|
```
|
|
209
467
|
|
|
210
|
-
###
|
|
468
|
+
### 各项目部署
|
|
469
|
+
|
|
470
|
+
#### Main 项目部署
|
|
471
|
+
```bash
|
|
472
|
+
cd packages/main
|
|
473
|
+
pnpm build
|
|
474
|
+
```
|
|
211
475
|
构建后的文件在 `packages/main/dist` 目录中,可以部署到任何静态文件服务器。
|
|
212
476
|
|
|
477
|
+
#### Docs 项目部署
|
|
478
|
+
```bash
|
|
479
|
+
cd packages/docs
|
|
480
|
+
pnpm build
|
|
481
|
+
```
|
|
482
|
+
构建后的文档站点在 `packages/docs/dist` 目录中,可以部署到静态文件服务器或CDN。
|
|
483
|
+
|
|
484
|
+
#### Client 项目部署
|
|
485
|
+
```bash
|
|
486
|
+
cd packages/client
|
|
487
|
+
# 根据环境选择构建命令
|
|
488
|
+
pnpm build # 生产环境
|
|
489
|
+
pnpm build:test # 测试环境
|
|
490
|
+
pnpm build:pre # 预发布环境
|
|
491
|
+
```
|
|
492
|
+
构建后的文件在 `packages/client/dist` 目录中。
|
|
493
|
+
|
|
213
494
|
### 环境配置
|
|
214
|
-
|
|
495
|
+
|
|
496
|
+
#### Main 项目环境
|
|
497
|
+
- 开发环境: `pnpm start`
|
|
498
|
+
- 生产构建: `pnpm build`
|
|
499
|
+
|
|
500
|
+
#### Docs 项目环境
|
|
501
|
+
- 开发环境: `pnpm dev`
|
|
502
|
+
- 生产构建: `pnpm build`
|
|
503
|
+
- SSR构建: `pnpm ssr`
|
|
504
|
+
|
|
505
|
+
#### Client 项目环境
|
|
215
506
|
- 开发环境: `pnpm start`
|
|
216
507
|
- 测试环境: `pnpm start:test`
|
|
217
508
|
- 预发布环境: `pnpm start:pre`
|
|
@@ -229,6 +520,16 @@ pnpm build
|
|
|
229
520
|
|
|
230
521
|
## 📝 更新日志
|
|
231
522
|
|
|
523
|
+
### v1.1.1
|
|
524
|
+
- 🎉 多项目架构支持
|
|
525
|
+
- ✨ 新增 Docs 项目 - 产品全生命周期文档管理
|
|
526
|
+
- 🖥️ 新增 Client 项目 - TTOS客户端项目
|
|
527
|
+
- 🔧 新增 TTOS 依赖安装脚本
|
|
528
|
+
- 📚 完整的文档管理系统(需求、设计、接口、开发、测试、日志)
|
|
529
|
+
- 🏢 多租户客户端支持
|
|
530
|
+
- 🎯 动态菜单配置
|
|
531
|
+
- 🔗 系统集成能力
|
|
532
|
+
|
|
232
533
|
### v1.0.0
|
|
233
534
|
- 🎉 初始版本发布
|
|
234
535
|
- ✨ 支持 React 18 + Rsbuild
|