You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过GitHub Actions Runner部署并运行Node.js Serve应用?

问题分析与解决步骤

为什么当前方案行不通

  1. npm run serve挂起:serve是持续运行的HTTP服务进程,GitHub Actions的Job会一直等待进程退出,导致任务卡住无法完成。
  2. 访问404:GitHub Pages仅支持静态文件托管,不运行Node.js服务;且GitHub Actions的运行环境是临时的,没有公网可访问的端口映射,就算服务启动成功,外部也无法访问。

正确实现部署并运行Node.js应用的步骤

1. 选择Node.js托管平台

GitHub Actions无法长期运行Node.js服务,必须借助支持Node.js运行的托管平台,比如:

  • GitHub Codespaces(适合开发测试场景,可临时或长期运行服务)
  • Vercel/Netlify(专注前端与Node.js应用托管,支持GitHub自动部署)
  • Heroku(传统PAAS平台,支持多语言应用托管)

2. 配置GitHub Actions实现自动化部署

以Vercel为例,调整你的Action流程实现自动部署:

  • 在托管平台注册账号,关联test-serve仓库,获取平台提供的部署令牌(如VERCEL_TOKEN)。
  • 进入GitHub仓库的Settings > Secrets and variables > Actions,添加该令牌为仓库密钥。
  • 修改.github/workflows/deploy.yml,替换原有npm run serve步骤为平台部署命令:
    name: Deploy Node.js App
    on: [push]
    jobs:
      deploy:
        runs-on: ubuntu-latest
        steps:
          - name: Checkout code
            uses: actions/checkout@v4
          - name: Set up Node.js
            uses: actions/setup-node@v4
            with:
              node-version: 20
          - name: Install dependencies
            run: npm install
          - name: Deploy to Vercel
            run: npx vercel --prod --token ${{ secrets.VERCEL_TOKEN }}
    
    (其他平台部署命令类似,比如Netlify用npx netlify deploy --prod --auth ${{ secrets.NETLIFY_TOKEN }})

3. 验证部署

推送代码到GitHub后,Actions会自动触发部署流程,完成后托管平台会提供公网访问地址,通过该地址即可访问运行中的Node.js应用。

临时测试场景(仅用于学习Actions)

如果只是想测试在Actions中启动服务的流程,不需要外部访问,可修改命令让服务运行一段时间后自动退出:

- name: Run serve temporarily
  run: npm run serve & sleep 30

此命令会启动服务并运行30秒,之后Actions继续执行后续步骤,但期间外部无法访问该服务。

内容的提问来源于stack exchange,提问作者Jonathan.Brink

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 11:30:55