chore: build 脚本仅生成 dist
This commit is contained in:
@@ -4,4 +4,3 @@ dist
|
|||||||
.env.*
|
.env.*
|
||||||
.DS_Store
|
.DS_Store
|
||||||
*.log
|
*.log
|
||||||
*.tar.gz
|
|
||||||
|
|||||||
@@ -252,7 +252,7 @@ pnpm db:migrate:prod
|
|||||||
pnpm start:prod
|
pnpm start:prod
|
||||||
```
|
```
|
||||||
|
|
||||||
`pnpm build:dev` 和 `pnpm build:pro` 生成的是已经包含 `dist/` 的部署包,所以服务器上不需要再执行 `pnpm build`。
|
`pnpm build:dev` 和 `pnpm build:pro` 只生成编译后的 `dist/` 目录。服务器上不需要再执行 `pnpm build`。
|
||||||
|
|
||||||
4. 健康检查:
|
4. 健康检查:
|
||||||
|
|
||||||
@@ -262,7 +262,7 @@ curl http://127.0.0.1:3500/health
|
|||||||
|
|
||||||
只有返回里出现 `database: "up"`,才代表后端服务和 MySQL 都连通。
|
只有返回里出现 `database: "up"`,才代表后端服务和 MySQL 都连通。
|
||||||
|
|
||||||
如果用压缩包部署,至少需要包含 `dist/`、`migrations/`、`deploy/`、`package.json` 和 `pnpm-lock.yaml`。不要把本机 `.env.*`、`node_modules/`、`src/`、`tsconfig.json` 和 `.git/` 打进部署包。
|
如果手动压缩部署,至少需要包含 `dist/`、`migrations/`、`deploy/`、`package.json` 和 `pnpm-lock.yaml`。不要把本机 `.env.*`、`node_modules/`、`src/`、`tsconfig.json` 和 `.git/` 打进部署包。
|
||||||
|
|
||||||
可以在本机执行:
|
可以在本机执行:
|
||||||
|
|
||||||
@@ -270,7 +270,7 @@ curl http://127.0.0.1:3500/health
|
|||||||
pnpm build:dev
|
pnpm build:dev
|
||||||
```
|
```
|
||||||
|
|
||||||
生成的 `access-manage-dev.tar.gz` 会包含编译后的 `dist/`,并排除本地环境变量、`node_modules/`、`src/`、`tsconfig.json` 和本地开发用 `docker-compose.yml`,避免覆盖服务器已经准备好的 MySQL 配置。正式生产发布时可以执行 `pnpm build:pro`,生成 `access-manage-pro.tar.gz`。
|
命令执行完成后会得到最新的 `dist/`。如果需要压缩上传,由部署者手动选择要打包的文件;正式生产构建时可以执行 `pnpm build:pro`。
|
||||||
|
|
||||||
## package.json 脚本说明
|
## package.json 脚本说明
|
||||||
|
|
||||||
@@ -280,8 +280,8 @@ pnpm build:dev
|
|||||||
| ------------------- | --------------------------------------------------------------------------- | -------------------------------------------------- |
|
| ------------------- | --------------------------------------------------------------------------- | -------------------------------------------------- |
|
||||||
| `pnpm dev` | 使用现有 `.env.development` 启动开发服务,并通过 `tsx watch` 监听代码变化。 | 日常开发接口时使用。 |
|
| `pnpm dev` | 使用现有 `.env.development` 启动开发服务,并通过 `tsx watch` 监听代码变化。 | 日常开发接口时使用。 |
|
||||||
| `pnpm build` | 使用 `tsc` 编译 TypeScript,输出到 `dist/`。 | 准备运行编译产物或发布前验证时使用。 |
|
| `pnpm build` | 使用 `tsc` 编译 TypeScript,输出到 `dist/`。 | 准备运行编译产物或发布前验证时使用。 |
|
||||||
| `pnpm build:dev` | 先执行 `pnpm build`,再把 `dist/` 和部署必需文件压缩成 `access-manage-dev.tar.gz`。 | 准备上传开发/测试服务器的部署包时使用。 |
|
| `pnpm build:dev` | 清空旧 `dist/`,再执行 `pnpm build` 生成新的 `dist/`。 | 准备开发/测试服务器部署产物时使用。 |
|
||||||
| `pnpm build:pro` | 先执行 `pnpm build`,再把 `dist/` 和部署必需文件压缩成 `access-manage-pro.tar.gz`。 | 准备正式生产发布包时使用。 |
|
| `pnpm build:pro` | 清空旧 `dist/`,再执行 `pnpm build` 生成新的 `dist/`。 | 准备正式生产部署产物时使用。 |
|
||||||
| `pnpm start` | 使用现有 `.env.development` 运行 `dist/server.js`。 | 已经执行过 `pnpm build` 后,用编译产物启动服务。 |
|
| `pnpm start` | 使用现有 `.env.development` 运行 `dist/server.js`。 | 已经执行过 `pnpm build` 后,用编译产物启动服务。 |
|
||||||
| `pnpm start:prod` | 使用 `.env.production` 运行 `dist/server.js`。 | 服务器生产环境启动编译产物时使用。 |
|
| `pnpm start:prod` | 使用 `.env.production` 运行 `dist/server.js`。 | 服务器生产环境启动编译产物时使用。 |
|
||||||
| `pnpm typecheck` | 执行 `tsc --noEmit`,只检查类型,不生成文件。 | 改 TypeScript 代码后快速确认类型是否正确。 |
|
| `pnpm typecheck` | 执行 `tsc --noEmit`,只检查类型,不生成文件。 | 改 TypeScript 代码后快速确认类型是否正确。 |
|
||||||
|
|||||||
+2
-2
@@ -6,8 +6,8 @@
|
|||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "DOTENV_CONFIG_PATH=.env.development tsx watch src/server.ts",
|
"dev": "DOTENV_CONFIG_PATH=.env.development tsx watch src/server.ts",
|
||||||
"build": "tsc",
|
"build": "tsc",
|
||||||
"build:dev": "pnpm build && tar -czf access-manage-dev.tar.gz package.json pnpm-lock.yaml dist migrations deploy docs README.md AGENTS.md RTK.md",
|
"build:dev": "rm -rf dist && pnpm build",
|
||||||
"build:pro": "pnpm build && tar -czf access-manage-pro.tar.gz package.json pnpm-lock.yaml dist migrations deploy docs README.md AGENTS.md RTK.md",
|
"build:pro": "rm -rf dist && pnpm build",
|
||||||
"start": "DOTENV_CONFIG_PATH=.env.development node dist/server.js",
|
"start": "DOTENV_CONFIG_PATH=.env.development node dist/server.js",
|
||||||
"start:prod": "DOTENV_CONFIG_PATH=.env.production node dist/server.js",
|
"start:prod": "DOTENV_CONFIG_PATH=.env.production node dist/server.js",
|
||||||
"typecheck": "tsc --noEmit",
|
"typecheck": "tsc --noEmit",
|
||||||
|
|||||||
Reference in New Issue
Block a user