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

Windows Server 2019自托管Git Runner执行npm ci时挂起求助

解决Windows Server 2019自托管Git Runner中npm ci挂起的问题

以下是针对你遇到的问题的排查和解决方向:

1. 调整npm ci命令的输出参数

GitHub Actions环境中,命令行输出缓冲溢出可能导致进程挂起,尝试添加参数抑制冗余输出:

echo "Building - npm ci"
set NODE_ENV=CI
npm ci --legacy-peer-deps --ignore-scripts --include=dev --no-progress --silent
echo "Building - npm run build"
npm run build

将set NODE_ENV=CI单独拆分一行,避免命令串联的潜在执行问题。

2. 验证自托管Runner的运行权限

确认GitHub Actions Runner服务以管理员权限运行:

  • 打开Windows服务列表,找到GitHub Actions Runner服务
  • 右键属性→登录→选择本地系统账户并勾选"允许服务与桌面交互"
  • 重启服务后重新执行Workflow

3. 对齐npm版本

确保自托管Runner上的npm版本与你本地测试的版本完全一致:
在Runner终端执行npm -v,本地终端也执行该命令,若版本不同,同步版本:

npm install -g npm@<你的本地版本号>

4. 清理残留进程

之前未正常退出的node/npm进程可能导致新命令挂起,在Build步骤前添加清理命令:

- name: Build
  run: |
    echo "Killing residual node/npm processes"
    taskkill /f /im node.exe /im npm.exe 2>nul
    echo "Building - npm ci"
    set NODE_ENV=CI
    npm ci --legacy-peer-deps --ignore-scripts --include=dev --no-progress --silent
    echo "Building - npm run build"
    npm run build
  shell: cmd

5. 检查工作目录路径

确认${{github.workspace}}对应的路径无空格或特殊字符,若存在此类情况:

  • 停止Runner服务
  • 重新配置Runner,指定无特殊字符的工作目录(如C:\runner-workspace)
  • 启动服务后重新测试

6. 启用调试日志定位问题

添加--verbose参数获取详细执行日志,帮助找到挂起的具体阶段:

npm ci --legacy-peer-deps --ignore-scripts --include=dev --verbose

查看GitHub Actions日志的最后执行步骤,进一步定位问题节点。

内容的提问来源于stack exchange,提问作者Dimitar Mitev

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 20:04:56