同步代码
本地初始化创建应用
- 创建应用: APP_NAME 对应的是系统已经创建好的应用名称,如果不填应用名称,工具会列出可选应用,选择应用之后 Treadstone CLI 会根据应用类型获取应用的项目代码模板来初始化创建应用。
stone create --name APP_NAME
- 进入应用文件夹,安装依赖:
npm install
NestJS 应用安装及同步代码
- 本地初始化创建 NestJS 应用之后,修改配置文件:
- 将 DATABASE_URL 改为你的 MySQL 数据库链接地址;
- 如果使用 Treadstone 提供的单点登录、统一鉴权,请保证 JWT 密钥与 Treadstone 的 JWT 密钥一致;
- 将 TREADSTONE_SERVER_URL、TREADSTONE_APP_ID、TREADSTONE_APP_SECRET 会自动带出;
.env
# MySQL
DATABASE_URL="mysql://USERNAME:PASSWORD@HOST:PORT/DATABASE"
PORT=3000
JWT_EXPIRED="7 days"
JWT_SECRET="JWT_SECRET"
TREADSTONE_SERVER_URL="TREADSTONE_SERVER_URL"
TREADSTONE_APP_ID="TREADSTONE_APP_ID"
TREADSTONE_APP_SECRET="TREADSTONE_APP_SECRET"
- 同步代码更新
stone pull && npx prisma format
- 查看 Prisma Schema 文件是否有错误,有错误请在 Treadstone 中修改后重新拉取,没有错误就可以同步到数据库
npx prisma migrate dev --name init
警告
stone pull 默认执行增量式更新:判断应用中对应模块文件夹是否已经存在 Module、Controller、Service、DTO、VO 文件,如果不存在则更新,如果想覆盖式更新请执行 stone pull --cover;
prisma/schema.prisma 文件以及 src/generated 文件夹下所有文件是自动生成文件,请勿手动修改,以 Treadstone 配置为准,手动修改后续执行更新会被覆盖掉;
And Design Pro 应用安装及同步代码
- 本地初始化创建 And Design Pro 应用之后,修改 config/config.ts 文件,添加以下配置:
- PROJECT_NAME 请保持与 Treadstone 创建的接口项目名称一致。
- 配置说明参考Ant Design Pro 后端接口集成
.env
{
requestLibPath: "import { request } from '@umijs/max'",
schemaPath: '<SWAGGER_JSON_URL>',
projectName: '<PROJECT_NAME>',
apiPrefix: `"/api"`,
}
然后导入后端接口:
npm run openapi
- 如果你使用项目代理转发,请调整 config/proxy.ts 文件:
- API_TARGET_URL 添加后端接口响应的 URL;
- TREADSTONE_SERVER_URL 添加 Treadstone 服务的 URL;
- 配置说明参考Ant Design Pro 配置
{
'/api/': {
target: '<API_TARGET_URL>',
changeOrigin: true,
pathRewrite: { '^': '' },
},
'/treadstone/': {
target: '<TREADSTONE_SERVER_URL>',
changeOrigin: true,
pathRewrite: { '^/treadstone': '' },
},
}
- 如果你使用 Nginx 代理转发,参考以下配置添加:
location /treadstone/ {
rewrite ^/treadstone/(.*)$ /$1 break;
proxy_pass TREADSTONE_SERVER_URL;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect off;
}
location ~ ^/api/ {
proxy_pass API_TARGET_URL;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect off;
}
- 同步代码:
stone pull
警告
stone pull 默认执行增量式更新:判断应用中对应组件文件是否已经存在,如果存在则不更新,如果想覆盖式更新请执行 stone pull --cover;