Node.js 安装nodejs后,詹金斯无法识别grunt

Node.js 安装nodejs后,詹金斯无法识别grunt,node.js,jenkins,gruntjs,jenkins-plugins,Node.js,Jenkins,Gruntjs,Jenkins Plugins,我试图在jenkins(ubuntu)中运行grunt,我已经安装了nodejs插件,然后重新启动了jenkins。 我创建了我的作业,并在其中的构建环境提供节点&npm bin/文件夹路径下打勾 然后在执行shell中,我在sell中运行npm--version,我的输出是+npm--version 1.4.9,但是如果我运行grunt--version,我的输出是grunt:notfound 我也在windows中尝试过,在这种情况下,我没有安装nodejs插件,我安装了bash命令行中的所

我试图在jenkins(ubuntu)中运行grunt,我已经安装了nodejs插件,然后重新启动了jenkins。 我创建了我的作业,并在其中的构建环境提供节点&npm bin/文件夹路径下打勾

然后在执行shell中,我在sell中运行
npm--version
,我的输出是
+npm--version 1.4.9
,但是如果我运行
grunt--version
,我的输出是
grunt:notfound

我也在windows中尝试过,在这种情况下,我没有安装nodejs插件,我安装了bash命令行中的所有内容。在本例中,jenkins为node和npm提供了以下信息:

C:\ProgramFiles(x86)\Jenkins\jobs\test Jenkins\workspace>node——版本
v0.10.29
C:\ProgramFiles(x86)\Jenkins\jobs\test Jenkins\workspace>npm--版本
1.4.14

对于grunt来说也是这样:
C:\ProgramFiles(x86)\Jenkins\jobs\test Jenkins\workspace>grunt

“grunt”不能被识别为命令或bash文件

我只能在Ubuntu中使用

我将插件nodejs添加到jenkins
(jenkins->manageplugins)
,然后重新启动jenkins。 在我开始工作后,我检查了路径的
Provide节点&npm bin/文件夹。然后我从
shell
安装了我需要的所有软件包


之后,
grunt
工作正常。

上述问题不仅在linux中出现,在windows中也会出现。这里有一个非常简单的解决方案,如果您知道grunt的安装位置,它在大多数情况下都能工作。不需要安装任何插件

就jenkins build而言,它安装在
驱动器:/.jenkins……/workspace/node_modules/.bin

在jenkins中使用shell脚本export
path=$path:drive:/.jenkins……/workspace/node\u modules/.bin提供此路径后,grunt开始执行

您还可以检查可执行文件在系统路径上的可用位置/jenkins执行可执行文件的位置。使用不带qoutes的“可执行文件名”
。您可以在windows和linux上使用此命令

完整参考:

您安装grunt了吗<代码>npm安装-g grunt cli
是的,我已经在windows中安装了grunt(npm安装-g grunt)和grunt cli(npm安装-g grunt cli)。在Ubuntu中,我通过nodejs插件安装了它们。您安装了
grunt cli
,但您说命令
grunt
返回“'grunt'不能识别为命令或bash文件”。您是否成功地在此计算机上全局安装了任何其他节点模块?对于所描述的问题,这可能是一个路径问题,而不是Jenkins的问题。在机器工作时,我在本地机器上运行Jenkins,当我在命令行中运行grunt时,它工作,但当我尝试从Jenkins运行它时,它不工作。在我的用户变量中,我在路径中有它,但在环境变量中没有。因此,可能是因为路径,我能做什么?对于你的本地机器,我假设是Ubuntu机器,你能验证运行Jenkins的用户和你一样吗?或者如果没有,运行Jenkins的用户是否可以访问与您相同的
grunt
可执行文件?对于Windows,您需要确保
grunt.cmd
文件的位置在您的路径中。虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能无效。-@托比·斯佩特:编辑了我的答案,按照建议加入了更多细节,希望它能帮助其他人。