Angularjs NPM在命令行上工作,但在Jenkins中不工作

Angularjs NPM在命令行上工作,但在Jenkins中不工作,angularjs,jenkins,npm,Angularjs,Jenkins,Npm,我很难让Jenkins使用“executeshell”(在“Build”步骤下)中的“npm”命令 我正在尝试设置一个新的Jenkins实例(来自上一个实例的副本)。我刚刚导入了旧作业,现在正在安装这些作业所依赖的各种服务(例如maven、nodejs、ansible等) 我在设置nodejs和npm时遇到困难 当我在命令行上键入命令“npm install”时,我得到以下结果: uws@9.14.0 install /var/lib/jenkins/workspace . . . . . .

我很难让Jenkins使用“executeshell”(在“Build”步骤下)中的“npm”命令

我正在尝试设置一个新的Jenkins实例(来自上一个实例的副本)。我刚刚导入了旧作业,现在正在安装这些作业所依赖的各种服务(例如maven、nodejs、ansible等)

我在设置nodejs和npm时遇到困难

当我在命令行上键入命令“npm install”时,我得到以下结果:

uws@9.14.0 install /var/lib/jenkins/workspace . . .
. . . 
Binary is fine
added 1282 packages in 36.424s
+ npm install
/tmp/jenkins7750702649955218109.sh: line 2: npm: command not found
Build step 'Execute shell' marked build as failure
然后,当我尝试使用Jenkins execute shell运行相同的命令时,我得到以下结果:

uws@9.14.0 install /var/lib/jenkins/workspace . . .
. . . 
Binary is fine
added 1282 packages in 36.424s
+ npm install
/tmp/jenkins7750702649955218109.sh: line 2: npm: command not found
Build step 'Execute shell' marked build as failure
为什么我可以从命令行访问这个命令,但Jenkins不能访问

我检查了一些东西:

-“节点”和“npm”的路径都在路径上。路径上至少有“快捷方式”(这在上一个Jenkins实例中有效)

-节点和npm二进制文件具有root:root所有权,但其安全设置(当前)为755(或-rwxr-xr-x)

-我已经安装了nodejs插件。不确定如何使用它,但它的设置与上一个Jenkins实例上的设置相匹配。这两个实例都使用executeshell(与任何特殊的Jenkins工具相反)来运行“npm”命令,而只有旧版本可以运行


那么,我还应该检查什么来确定我没有?Jenkins需要什么来访问“npm”命令?

在Jenkins中尝试以下选项

选项1:

选项2:


您能否在jenkins可执行shell中运行PATH命令并确认其中是否存在npm?因此,下面是该测试的结果:+echo/sbin:/usr/sbin:/bin:/usr/bin/sbin:/usr/sbin:/bin:/usr/bin。以后的编辑会提供更多信息。好主意。我感到很尴尬,因为我没有考虑这次考试。下面是该测试的结果:+echo/sbin:/usr/sbin:/bin:/usr/bin/sbin:/usr/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/src/apache maven/bin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin检查/usr/local/bin的内容,我看到了“node”可执行文件和“npm”的快捷方式可执行文件。在Jenkins提供的版本中看不到可执行文件,但可能需要仔细检查。知道为什么会存在这种差异吗?好东西!选项2对我有效,但我不得不稍微改变它,将二进制文件从路径中去掉:“export path=$path:/usr/local/bin”选项1对眼前的问题有效,但我随后遇到了“第3行:ng:command not found”,因此我可能需要了解更多关于如何配置NodeJS插件的信息。选项2对我有效。在公司防火墙后面添加npm配置命令,以便在安装npm之前设置注册表和http代理。