在开始之前,我想说我已经检查了以下答案:
Jenkins构建步骤在“ npm install <whatever>”上失败
现在,我已经处理了一段时间,因此尝试了很多东西。
首先,我通过自制软件安装了node + npm。一种简单$ node -v
和$ npm -v
呼应节点和V2.3版本v0.10.36。*为NPM,这也意味着我有他们在路径和他们的工作,而在终端调用。
只是在Jenkins中添加node -v; npm -v
到execute shell并没有做到这一点。稍作修改后,我将$: which node
终端中产生的内容复制到上述脚本中,该脚本现在看起来像这样:/usr/local/bin/node
显然可行。Jenkins构建成功,并且在控制台输出中自豪地显示了“ node-v0.10.36” 。
当对“ npm”做同样的事情时,碰巧是/usr/local/bin/npm --version
计算机神不再那么仁慈。一个很大的' env:node:这次没有抛出这样的文件或目录错误,整个构建失败。
$ /bin/sh -xe /var/folders/wr/g_dl81tn5_x0t_yz3jw602cr0000gn/T/hudson8770480548136671253.sh
当我在终端中运行相同的命令时,失败的实际命令是“令人惊讶”。
我还卸载了自制节点和npm版本,然后通过程序包管理器安装了它们。结果相同。
最终我也做到了:https : //gist.github.com/DanHerbert/9520689,没有运气。
笔记:
who am i
可执行脚本中的命令会产生管理员的用户名。非常感谢您的帮助,如果您需要任何其他信息,屏幕截图,日志等,请告诉我。
我找到了自己的解决方案。问题在于,尽管在Shell中可见的PATH并未为Jenkins作业导出,因此,这里发现的第一个解决方法是将其导出为实际的脚本,如下所示:
但这感觉就像是骇客!
正确而优雅的解决方案是使用Jenkins EnvInject插件并在配置页面上添加的Properties内容文本区域中导出路径,如下所示:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句