From 9c2eef094f860a5d068b5f1f0f041a9bbfd9e56a Mon Sep 17 00:00:00 2001 From: mac Date: Sat, 5 Oct 2024 03:23:21 +0800 Subject: [PATCH] deploy to gh-pages --- .github/workflows/deploy.yml | 36 ++++++++++++++++++++++++++++++++++++ package.json | 11 +++++++---- tsconfig.app.tsbuildinfo | 1 + tsconfig.node.tsbuildinfo | 1 + vite.config.ts | 13 ++++++++++++- 5 files changed, 57 insertions(+), 5 deletions(-) create mode 100644 .github/workflows/deploy.yml create mode 100644 tsconfig.app.tsbuildinfo create mode 100644 tsconfig.node.tsbuildinfo diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..04137bf --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,36 @@ +name: Deploy to GitHub Pages + +on: [push] +permissions: + contents: write + +jobs: + build-and-deploy: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - uses: pnpm/action-setup@v4 + name: Install pnpm + with: + version: 9 + run_install: false + + - name: Install Node.js + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: 'pnpm' + + - name: Install Dependencies + run: pnpm install # 使用pnpm进行依赖安装 + + - name: Build + run: pnpm build # 使用pnpm进行构建 + env: + GITHUB_PAGES: 'true' + + - name: Deploy to GitHub Pages + uses: JamesIves/github-pages-deploy-action@v4 + with: + folder: dist # 要部署的文件夹,通常是构建输出目录 \ No newline at end of file diff --git a/package.json b/package.json index 8c202cf..6b3788e 100644 --- a/package.json +++ b/package.json @@ -1,13 +1,15 @@ { - "name": "chess-analysis-web", + "name": "xiangqi-analysis-web", "type": "module", "version": "1.0.0", - "description": "Online chess endgame analysis application", + "description": "Online xiangqi endgame analysis application", "main": "index.js", "scripts": { "dev": "vite", "build": "tsc -b && vite build", - "preview": "vite preview" + "preview": "vite preview", + "predeploy": "npm run build", + "deploy": "gh-pages -d dist" }, "dependencies": { "@techstark/opencv-js": "^4.10.0-release.1", @@ -19,5 +21,6 @@ "typescript": "^5.6.2", "vite": "^5.4.8" }, - "packageManager": "pnpm@9.12.0+sha512.4abf725084d7bcbafbd728bfc7bee61f2f791f977fd87542b3579dcb23504d170d46337945e4c66485cd12d588a0c0e570ed9c477e7ccdd8507cf05f3f92eaca" + "packageManager": "pnpm@9.12.0+sha512.4abf725084d7bcbafbd728bfc7bee61f2f791f977fd87542b3579dcb23504d170d46337945e4c66485cd12d588a0c0e570ed9c477e7ccdd8507cf05f3f92eaca", + "homepage": "https://.github.io/" } diff --git a/tsconfig.app.tsbuildinfo b/tsconfig.app.tsbuildinfo new file mode 100644 index 0000000..8e5ab30 --- /dev/null +++ b/tsconfig.app.tsbuildinfo @@ -0,0 +1 @@ +{"root":["./src/app.tsx","./src/chessengine.ts","./src/main.tsx","./src/vite-env.d.ts","./src/chessboard/chessboarddetection.ts","./src/chessboard/fengeneration.ts","./src/chessboard/movehelper.ts","./src/chessboard/overlaycreation.ts","./src/chessboard/piecedetection.ts","./src/chessboard/templatematching.ts","./src/chessboard/types.ts","./src/chessboard/utils.ts","./src/components/chessboarddisplay.tsx","./src/components/chessboardoverlay.tsx","./src/components/fendisplay.tsx","./src/components/imageuploader.tsx","./src/components/solutiondisplay.tsx"],"version":"5.6.2"} \ No newline at end of file diff --git a/tsconfig.node.tsbuildinfo b/tsconfig.node.tsbuildinfo new file mode 100644 index 0000000..98ef2f9 --- /dev/null +++ b/tsconfig.node.tsbuildinfo @@ -0,0 +1 @@ +{"root":["./vite.config.ts"],"version":"5.6.2"} \ No newline at end of file diff --git a/vite.config.ts b/vite.config.ts index 12b322b..0a61474 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,6 +1,15 @@ import { defineConfig } from 'vite'; import preact from '@preact/preset-vite'; +declare const process: { + env: { + GITHUB_PAGES?: string; + }; +}; + +// 检查是否是 GitHub Pages 环境 +const isGitHubPages = process.env.GITHUB_PAGES === 'true'; + export default defineConfig({ plugins: [ preact() ], server: { @@ -22,4 +31,6 @@ export default defineConfig({ optimizeDeps: { include: [ 'pikafish' ], }, -}); \ No newline at end of file + // 根据环境动态设置 base + base: isGitHubPages ? '/xiangqi-analysis/' : '/', +});