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

Jenkins构建失败:node/npm/serverless未找到,已尝试插件与sudoers配置

解决Jenkins构建找不到node/npm/serverless命令的问题

首先得明确核心问题:从日志里的Whoami jenkins能看出来,Jenkins的shell构建步骤是用jenkins用户运行的,但这个用户的PATH环境变量里没有Node.js、npm、serverless的安装路径,所以系统找不到这些命令。之前尝试的插件和sudoers配置没解决,大概率是没触碰到环境变量这个核心点,下面给你几个靠谱的解决方法:

方法1:直接用工具的绝对路径执行(快速临时方案)

先找到这些工具的真实安装路径:

  • 登录Jenkins服务器,切换到jenkins用户:sudo su - jenkins
  • 分别执行which node、which npm、which serverless,得到类似/usr/local/bin/node这样的绝对路径
  • 把你的shell脚本里的命令替换成绝对路径,比如:
/usr/local/bin/node your-build-script.js
/usr/local/bin/npm install
/usr/local/bin/serverless deploy

方法2:给Jenkins全局配置添加环境变量(通用持久方案)

  1. 打开Jenkins管理后台,进入「Manage Jenkins」→「Configure System」
  2. 找到「Global properties」,勾选「Environment variables」
  3. 添加一个名为PATH的变量,值为系统原有PATH加上工具的安装路径,比如:
    $PATH:/usr/local/bin:/home/jenkins/.nvm/versions/node/v18.17.0/bin
    (路径要换成你服务器上的实际路径)
  4. 保存配置后重新构建,所有Jenkins任务都会继承这个PATH配置

方法3:给单个任务单独配置环境变量(按需方案)

如果不想修改全局配置,只给出问题的xxxxx-build-pipeline任务配置:

  1. 打开该任务的「Configure」页面
  2. 找到「Build Environment」,勾选「Inject environment variables to the build process」
  3. 在「Properties Content」里添加:
    PATH=$PATH:/usr/local/bin:/home/jenkins/.nvm/versions/node/v18.17.0/bin
    
    替换成实际路径后保存,重新构建即可

方法4:修复Jenkins用户的shell环境配置(针对nvm安装的Node.js)

如果你是用nvm安装的Node.js,可能jenkins用户的shell配置文件没加载nvm脚本,导致PATH没被设置:

  1. 切换到jenkins用户:sudo su - jenkins
  2. 编辑.bash_profile(非交互式shell只会加载这个文件),添加nvm的加载命令:
    export NVM_DIR="$HOME/.nvm"
    [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
    
  3. 执行source ~/.bash_profile让配置生效,测试node -v能正常运行后,再重新触发Jenkins构建

补充:为啥之前的操作没生效?

  • Node.js插件需要你先在「Manage Jenkins」→「Global Tool Configuration」里正确配置Node.js的安装路径,然后在任务里指定使用该版本,它才会自动把路径加入构建环境,可能你之前没完成这一步?
  • sudoers配置解决的是权限问题,而你现在是环境变量缺失的问题,所以改sudoers根本碰不到核心,反而可能引入不必要的权限风险

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:13:59