node.js - 使用 Jenkins 运行 Grunt.js

标签 node.js jenkins gruntjs

我已经建立了一个带有 mocha 测试和 JSlint 的 Gruntfile。如果我只是从终端运行 grunt,这可以正常工作。

我想从 Jenkins 那里 Grunt !

我设置了一个新工作 -> 并构建了一个 shell 脚本并包括:

/usr/local/bin/grunt

一旦我运行作业,Jenkins 的终端输出会显示:

[workspace] $ /bin/sh -xe /tmp/hudson8550584576040162032.sh
+ /usr/local/bin/grunt
/usr/bin/env: node: No such file or directory
Build step 'Execute shell' marked build as failure
Finished: FAILURE

似乎它不能精细 Node 二进制!?!但是 Node 已安装并在终端中运行良好!

我所有的二进制文件(mocha、grunt、node)都在/usr/local/bin/中

有谁知道问题出在哪里?或者也许有人有使用 jenkins 设置 grunt.js 的链接?

有人拿东西了吗?

谢谢

最佳答案

发生这种情况是因为 Jenkins 将以不同的用户身份运行,该用户的 $PATH 中可能没有 /usr/local/bin

在您的 shell 脚本中,确保将 /usr/local/bin 添加到您的 $PATH

export PATH="/usr/local/bin:$PATH"
# This will also mean you can call 'grunt' rather than '/usr/local/bin/grunt'
grunt

这有一个额外的好处,那就是调用您在 /usr/local/bin 中安装的任何程序,而不是 /usr/bin 中的任何程序。如果您不想要这种行为,只需追加而不是前置:

export PATH="$PATH:/usr/local/bin"
# This will also mean you can call 'grunt' rather than '/usr/local/bin/grunt'
grunt

关于node.js - 使用 Jenkins 运行 Grunt.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15971103/

相关文章:

css - 如何在 grunt 中正确配置 uncss?

node.js - 使用 busboy 库在 Lambda 中上传文件时缺少数据?

javascript - Service-Worker addEventListener,事件参数如何使用?

java - 多模块maven项目: Failed to execute goal on project,无法解析项目的依赖关系,无法找到 Artifact

node.js - 如何使用 jenkins 构建后发布到另一个 git

gruntjs - 咕噜声连接 : serve files with base url added

sass - 运行 "sass:dist"(sass) 任务 Errno::ENOENT: 没有这样的文件或目录@rb_sysopen - 未定义

mysql - 创建pdf时 Node 中的同步mysql查询

node.js - npm 不会使用 Laravel/Homestead 安装 package.json 文件中列出的软件包

jenkins - 监控 Jenkins 节点上的特定磁盘空间