592 字
3 分钟
RGC Blog 构建与部署注意事项

这篇记录当前博客项目自己的构建和部署注意事项。

本地开发命令#

安装依赖:

Terminal window
pnpm install

启动开发服务器:

Terminal window
pnpm dev

本地构建:

Terminal window
pnpm build

预览构建结果:

Terminal window
pnpm preview

包管理器版本#

项目指定:

{
"packageManager": "pnpm@9.14.4"
}

并且有 preinstall 限制:

{
"preinstall": "npx only-allow pnpm"
}

所以这个项目应该使用 pnpm,不要用 npm installyarn install

Node 版本#

GitHub Actions 使用:

node-version: 22

本地如果有多个 Node 版本,优先使用 Node 22。

查看:

Terminal window
node -v
pnpm -v

构建命令实际做了什么#

package.json 里:

{
"build": "astro build && pagefind --site dist"
}

也就是说 pnpm build 会先生成 Astro 静态站点,再为 dist 生成 Pagefind 搜索索引。

如果只运行 astro build,页面可以生成,但搜索索引可能不是最新的。

GitHub Pages 部署方式#

当前正确方式是 GitHub Actions。

workflow 文件:

.github/workflows/deploy.yml

关键步骤:

- run: pnpm install --frozen-lockfile
- run: pnpm build
- uses: actions/upload-pages-artifact@v3
- uses: actions/deploy-pages@v4

GitHub 仓库设置里应该选择:

Settings -> Pages -> Build and deployment -> Source -> GitHub Actions

不要选择:

Deploy from a branch

否则 GitHub 可能会同时触发默认 Jekyll 构建,出现一个成功的 Astro workflow 和一个失败的 pages build and deployment

GitHub Pages 出现 Jekyll 日志是什么意思#

如果日志里出现:

GitHub Pages: jekyll
Theme: jekyll-theme-primer
Source: /github/workspace/.
Destination: /github/workspace/./_site

说明 GitHub 正在把仓库根目录当成 Jekyll 站点构建。

这个项目是 Astro,不应该走 Jekyll。

解决方法是把 Pages Source 改成:

GitHub Actions

Cloudflare Workers 部署#

当前 Cloudflare Workers Static Assets 配置在:

wrangler.jsonc

核心配置:

{
"name": "r-gc-github-io",
"compatibility_date": "2026-05-20",
"assets": {
"directory": "./dist/",
"not_found_handling": "404-page",
"html_handling": "auto-trailing-slash"
}
}

Cloudflare 构建命令:

Terminal window
pnpm run build

部署命令:

Terminal window
npx wrangler deploy

站点地址配置#

Astro 配置里:

site: "https://r-gc.github.io/",
base: "/",
trailingSlash: "always",

site 会影响 sitemap、RSS 等生成结果。

如果以后主域名完全切到:

https://blog.rgcdev.top/

可以考虑把 site 改成主域名。

常见排查命令#

本地构建:

Terminal window
pnpm build

检查生成页面:

Terminal window
find dist -maxdepth 3 -type f | sort

查看 GitHub Actions 配置:

Terminal window
sed -n '1,220p' .github/workflows/deploy.yml

查看 Cloudflare 配置:

Terminal window
sed -n '1,160p' wrangler.jsonc

查看 scripts:

Terminal window
node -p "require('./package.json').scripts"

注意事项#

Cloudflare Workers 和 GitHub Pages 是两套部署。

Cloudflare 当前是主站部署,GitHub Pages 可以作为备用和对照。

GitHub Pages 默认 Jekyll 构建失败,不代表 Astro workflow 失败;看绿色的 Deploy to GitHub Pages workflow 是否成功更关键。

新增笔记后,Pagefind 会在构建时更新搜索索引。

RGC Blog 构建与部署注意事项
https://r-gc.github.io/posts/notes/blog/rgc-blog-build-deploy-tips/
作者
RGC
发布于
2026-05-20
许可协议
CC BY-NC-SA 4.0