# wudong-cli
**Repository Path**: wudongo/wudong-cli
## Basic Information
- **Project Name**: wudong-cli
- **Description**: 用于一键生成各种模板的脚手架
支持:
Node Server
React Template
Cli
Npm Package
Electron(React)
- **Primary Language**: TypeScript
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2023-03-26
- **Last Updated**: 2023-06-12
## Categories & Tags
**Categories**: Uncategorized
**Tags**: TypeScript, Electron, Nodejs, React, template
## README
# wudong-cli
## 项目描述
wudong-cli 是用于一键生成模板服务的脚手架。
目前支持:
- Node Server
这需要您在 wudongCli.config.json 中配置数据库的字段, 将支持一键生成 Node Server
一键生成所配置的 sql 文件, 对于简单的库表结构可以做到开箱即用。
- React Template
目前尚不提供配置需求, React 模板
- Cli
目前尚不提供配置需求, 脚手架模板
- Package
目前尚不提供配置需求, npm包模板
- Electron
目前尚不提供配置需求, Electron + React + Typescript 模板
### 模板选项
- **[Node Server](https://gitee.com/wudongo/node-server-base-on-koa2-type-script.git)**
- **[React Template](https://gitee.com/wudongo/react-ts-templater.git)**
- **[Cli Template](https://gitee.com/wudongo/template-node-cli.git)**
- **[Package Template](https://gitee.com/wudongo/template-npm-package.git)**
- **[Electron Template](https://gitee.com/wudongo/wudong-electron-react-ts.git)**
## 安装
```Basic
npm install wudong-cli -g
```
## 使用方式
### 初始化配置文件
```Javascript
wudong-cli init
```
### 获取选择的模板
```Javascript
wudong-cli generate
```
### 配置文件校验
```Javascript
wudong-cli check
```
### 生成 sql 命令
```Javascript
wudong-cli sql
```
### 完整版配置文件详解
```Javascript
{
"database": {
"name": "your database's name", // 数据库名称
"username": "your database's username", // 数据库用户名
"password": "your database's password", // 数据库密码
"ip": "127.0.0.1", // 数据库IP,默认为本地
"configuration": { // 数据库配置, 默认 mysql 目前不支持更改
"engine": "InnoDB", // mysql的默认存储引擎
// 请确保 mysql 版本为8.0+,以下两个字段才能生效
"charset": "utf8mb4", // mysql的默认编码方式
"collate": "utf8mb4_0900_ai_ci" // mysql 对于 utf8 的默认排序规则
},
"table": [{ // 数据库表, 可定义多个
"name": "test", // 库表名称
"needDefaultProps": true, // 是否需要默认的id、create_at属性, 默认是
"columns": [ // 定义字段
{
"name": "age", // 字段名称
"type": "INT", // 字段类型
"notNull": true, // 字段是否不可为空
"default": "" // 字段默认值
},
{
"name": "name", // 字段名称
"type": "VARCHAR(50)", // 字段类型
"notNull": true, // 字段是否不可为空
"default": "", // 字段默认值
},
]
}]
},
}
```
### 数据字段类型支持
| 字段类型 | 描述 |
| ---- | ---- |
| INT | 对应 Mysql 中 INT 类型 |
| TEXT | 对应 Mysql 中 TEXT 类型 |
| DATE | 对应 Mysql 中 DATE 类型 |
| DATETIME | 对应 Mysql 中 DATETIME 类型 |
| VARCHAR | 对应 Mysql 中 VARCHAR() 类型 |
| JSON | 对应 Mysql 中 JSON 类型 |
### 字段属性支持
| 字段属性 | 类型 | 描述 |
| ---- | ---- | ---- |
| primaryKey | Boolean | 对应 Mysql 中 PK |
| autoIncrement | Boolean | 对应 Mysql 中 AI |
| notNull | Boolean | 对应 Mysql 中 NN |
| unique | Boolean | 对应 Mysql 中 UQ |
| default | String | 对应 Mysql 中 Default/Expression |
### 已知问题
- 目前支持的模板较少, 仅有 Node Server
- 目前 Node Server 仅支持 Mysql 数据库
- 目前在配置文件中检验的 Mysql 字段类型很有限, 后续会增加
- 目前 Node Server 的库表信息填充方式为简单字符串填充,与 Server 模板耦合度较高