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

GitHub Actions部署AWS EC2时npm命令不存在(错误码127)求助

解决GitHub Actions自托管EC2时"npm命令未找到"的问题

问题复现

EC2服务器本地通过nvm安装的Node.js、npm可正常使用,但GitHub Actions自托管执行时提示:

Run npm i
/home/ec2-user/actions-runner/_work/_temp/4834eb75-d660-4153-8295-0150ec5c725b.sh: line 1: npm: command not found
Error: Process completed with exit code 127.

EC2本地查询路径:

[ec2-user@ip-172-00-00-225 ~]$ which npm
~/.nvm/versions/node/v16.19.1/bin/npm
[ec2-user@ip-172-00-00-225 ~]$ which node
~/.nvm/versions/node/v16.19.1/bin/node

解决方案

方法1:直接使用npm绝对路径

修改工作流中的npm命令,替换为EC2上npm的实际绝对路径:

- run: /home/ec2-user/.nvm/versions/node/v16.19.1/bin/npm i

方法2:加载nvm环境配置

在执行npm前先加载nvm初始化脚本,确保环境变量生效:

- run: source ~/.nvm/nvm.sh && npm i

或加载用户bash配置文件:

- run: source ~/.bashrc && npm i

方法3:配置工作流PATH环境变量

在工作流中直接将npm所在目录添加到PATH:

jobs:
  build:    
    runs-on: self-hosted
    env:
      PATH: ${{ env.PATH }}:/home/ec2-user/.nvm/versions/node/v16.19.1/bin
    strategy:
      matrix:
        node-version: [16.x]
    
    steps:
    - uses: actions/checkout@v3
    - run: npm i 
    - run: sudo pm2 kill -a
    - run: sudo pm2 start index.js

问题原因

EC2上的Node.js通过nvm安装,nvm的PATH配置通常写入~/.bashrc或~/.nvm/nvm.sh中,但GitHub Actions自托管runner使用非交互式shell启动,不会自动加载用户配置文件,导致系统PATH中没有npm的路径,进而触发"命令未找到"错误。

内容的提问来源于stack exchange,提问作者rameez khan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 01:45:28