詹金斯找不到 npm

新手上路,请多包涵

在这个 linux 服务器上,我有一个名为“myuser”的用户。对于这个用户,在回显路径时,我得到了这个:

/home/myuser/bin:/home/myuser/.local/bin:/home/myuser/.nvm/versions/node/v6.11.1/bin:/usr/local/sbin:/usr/local/bin:/ usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

有一个节点应用程序,手动部署时我运行:

 npm i

它有效。

现在,我安装了 Jenkins。我要安装的 Jenkins 项目位于:

 /var/lib/jenkins/workspace/test

构建正在执行一个 shell 脚本。在那个窗口中,我输入了:

 #!/bin/bash
npm i

使用 Jenkins 构建时,我得到以下信息:

 [test] $ /bin/bash /tmp/jenkins756533162549346948.sh
/tmp/jenkins756533162549346948.sh: line 3: npm: command not found
Build step 'Execute shell' marked build as failure
Finished: FAILURE

如果我只写:

 echo $PATH

在 Jenkins 外壳中,我得到了这个:

 [test] $ /bin/sh -xe /tmp/jenkins5067097808572366507.sh
+ echo /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/snap/bin
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/snap/bin
[test] $ /var/lib/jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/6.11.1/bin/node /tmp/jenkins8733250738704177758.js
Finished: SUCCESS

如您所见,我安装了 nodejs 插件。无论如何,在使用 Jenkins shell 时,找不到 npm 甚至节点。如何让 Jenkins 知道 npm/node 在哪里?我试图先在 shell 中写这个:

$PATH=/home/myuser/.nvm/versions/node/v6.11.1/bin

但仍然没有运气。

原文由 oderfla 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 570
1 个回答

我已经为此奋斗了一段时间。终于找到了解决办法。从你的工作菜单中选择 ConfigureBuild Environment 选择 Provide Node & npm bin/ folder to PATH 你可以保留默认设置,你很高兴。

在此处输入图像描述

正如 Eric Wang 在评论中指定的那样,需要先安装 NodeJS Plugin 才能出现此选项: https ://wiki.jenkins.io/display/JENKINS/NodeJS+Plugin

原文由 tutug 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题