本地构建

TERMINALbash
npm run build

构建过程:

  1. Astro SSG 编译所有页面为静态 HTML,输出到 dist/
  2. 过滤 Shiki 语法高亮器非关键警告
  3. 扫描 src/content/ 生成 public/search-index.json

构建完成后 dist/ 目录可直接部署。

构建输出结构

CODEtext
dist/├── index.html├── 404.html├── cloud.html├── cloud/│   ├── ansible.html│   ├── ansible/01-ansible-lab-setup.html│   └── ...├── network/├── os/├── tech/├── manuals/│   ├── ictstu/│   ├── eve-ng/│   └── eid/├── _astro/            # 编译后的 CSS/JS 资源├── favicon.ico├── robots.txt├── sitemap.xml└── rss.xml

部署方式

阿里云 OSS

项目使用 updategitbook.py 脚本实现一键部署(需安装 oss2):

TERMINALbash
pip install oss2python updategitbook.py

脚本流程:构建 → 清理 OSS → 上传 OSS → 刷新 CDN → 百度推送 → Git Push。

其他平台

Astro 生成的纯静态文件可部署到任何静态托管服务:

TERMINALbash
# Vercelnpm install -g vercelvercel --prod# Netlifynpm install -g netlify-clinetlify deploy --prod --dir=dist# 任意 Nginx 服务器cp -r dist/* /var/www/html/

CI/CD 自动化

GitHub Actions

CODEyaml
name: Deployon:push:  branches: [main]jobs:build-and-deploy:  runs-on: ubuntu-latest  steps:    - uses: actions/checkout@v4    - uses: actions/setup-node@v4      with:        node-version: 22    - run: npm ci    - run: npm run build    - uses: peaceiris/actions-gh-pages@v4      with:        github_token: ${{ secrets.GITHUB_TOKEN }}        publish_dir: ./dist