From 00b20174f6750227669e663562641315cc568795 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B9=9B=E5=85=AE?= Date: Fri, 29 May 2026 18:43:09 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E8=B0=83=E6=95=B4=E9=83=A8=E7=BD=B2?= =?UTF-8?q?=E5=8C=85=E4=B8=BA=20dist=20=E4=BA=A7=E7=89=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 15 +++++++-------- package.json | 4 ++-- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 9006c9c..1d2dd6c 100644 --- a/README.md +++ b/README.md @@ -244,16 +244,15 @@ DB_HOST=127.0.0.1 DB_PORT=3307 ``` -3. 构建、迁移、启动: +3. 安装生产依赖、迁移、启动: ```bash -pnpm install --frozen-lockfile -pnpm build +pnpm install --prod --frozen-lockfile pnpm db:migrate:prod pnpm start:prod ``` -生产迁移脚本运行的是编译后的 `dist/db/migrate.js`,所以服务器上要先执行 `pnpm build`,再执行 `pnpm db:migrate:prod`。 +`pnpm build:dev` 和 `pnpm build:pro` 生成的是已经包含 `dist/` 的部署包,所以服务器上不需要再执行 `pnpm build`。 4. 健康检查: @@ -263,7 +262,7 @@ curl http://127.0.0.1:3500/health 只有返回里出现 `database: "up"`,才代表后端服务和 MySQL 都连通。 -如果用压缩包部署,至少需要包含 `src/`、`migrations/`、`deploy/`、`package.json`、`pnpm-lock.yaml`、`tsconfig.json`。不要把本机 `.env.*`、`node_modules/` 和 `.git/` 打进部署包。 +如果用压缩包部署,至少需要包含 `dist/`、`migrations/`、`deploy/`、`package.json` 和 `pnpm-lock.yaml`。不要把本机 `.env.*`、`node_modules/`、`src/`、`tsconfig.json` 和 `.git/` 打进部署包。 可以在本机执行: @@ -271,7 +270,7 @@ curl http://127.0.0.1:3500/health pnpm build:dev ``` -生成的 `access-manage-dev.tar.gz` 会排除本地环境变量、`node_modules/`、`dist/` 和本地开发用 `docker-compose.yml`,避免覆盖服务器已经准备好的 MySQL 配置。正式生产发布时可以执行 `pnpm build:pro`,生成 `access-manage-pro.tar.gz`。 +生成的 `access-manage-dev.tar.gz` 会包含编译后的 `dist/`,并排除本地环境变量、`node_modules/`、`src/`、`tsconfig.json` 和本地开发用 `docker-compose.yml`,避免覆盖服务器已经准备好的 MySQL 配置。正式生产发布时可以执行 `pnpm build:pro`,生成 `access-manage-pro.tar.gz`。 ## package.json 脚本说明 @@ -281,8 +280,8 @@ pnpm build:dev | ------------------- | --------------------------------------------------------------------------- | -------------------------------------------------- | | `pnpm dev` | 使用现有 `.env.development` 启动开发服务,并通过 `tsx watch` 监听代码变化。 | 日常开发接口时使用。 | | `pnpm build` | 使用 `tsc` 编译 TypeScript,输出到 `dist/`。 | 准备运行编译产物或发布前验证时使用。 | -| `pnpm build:dev` | 先执行 `pnpm build`,再生成 `access-manage-dev.tar.gz`。 | 准备上传开发/测试服务器的源码部署包时使用。 | -| `pnpm build:pro` | 先执行 `pnpm build`,再生成 `access-manage-pro.tar.gz`。 | 准备正式生产发布包时使用。 | +| `pnpm build:dev` | 先执行 `pnpm build`,再把 `dist/` 和部署必需文件压缩成 `access-manage-dev.tar.gz`。 | 准备上传开发/测试服务器的部署包时使用。 | +| `pnpm build:pro` | 先执行 `pnpm build`,再把 `dist/` 和部署必需文件压缩成 `access-manage-pro.tar.gz`。 | 准备正式生产发布包时使用。 | | `pnpm start` | 使用现有 `.env.development` 运行 `dist/server.js`。 | 已经执行过 `pnpm build` 后,用编译产物启动服务。 | | `pnpm start:prod` | 使用 `.env.production` 运行 `dist/server.js`。 | 服务器生产环境启动编译产物时使用。 | | `pnpm typecheck` | 执行 `tsc --noEmit`,只检查类型,不生成文件。 | 改 TypeScript 代码后快速确认类型是否正确。 | diff --git a/package.json b/package.json index 4f11208..aa834b6 100644 --- a/package.json +++ b/package.json @@ -6,8 +6,8 @@ "scripts": { "dev": "DOTENV_CONFIG_PATH=.env.development tsx watch src/server.ts", "build": "tsc", - "build:dev": "pnpm build && tar -czf access-manage-dev.tar.gz package.json pnpm-lock.yaml tsconfig.json src migrations deploy docs README.md AGENTS.md RTK.md", - "build:pro": "pnpm build && tar -czf access-manage-pro.tar.gz package.json pnpm-lock.yaml tsconfig.json src migrations deploy docs README.md AGENTS.md RTK.md", + "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: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", "start": "DOTENV_CONFIG_PATH=.env.development node dist/server.js", "start:prod": "DOTENV_CONFIG_PATH=.env.production node dist/server.js", "typecheck": "tsc --noEmit",