为Bamboo构建设置环境变量

时间:2015-10-12 03:23:10

标签: node.js windows npm bamboo

我有一个Bamboo构建,我需要做的一件事就是执行npm install命令。这一切都很顺利,除非它遇到一个依赖项,该依赖项会生成另一个节点实例,直到在子子进程中运行12-Oct-2015 12:54:12 12-Oct-2015 12:54:12 12-Oct-2015 12:54:12 D:\bamboo-home\xml-data\build-dir\EC-ECB-BUIL\server\node_modules\oracledb>if not defined npm_config_node_gyp (node "c:\Program Files\nodejs\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild ) else (node rebuild ) 12-Oct-2015 12:54:12 'node' is not recognized as an internal or external command, 12-Oct-2015 12:54:12 operable program or batch file. 12-Oct-2015 12:54:22 npm ERR! Windows_NT 5.2.3790 12-Oct-2015 12:54:22 npm ERR! argv "c:\\Program Files\\nodejs\\node.exe" "c:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" 12-Oct-2015 12:54:22 npm ERR! node v4.1.2 12-Oct-2015 12:54:22 npm ERR! npm v2.14.4 12-Oct-2015 12:54:22 npm ERR! code ELIFECYCLE 12-Oct-2015 12:54:22 12-Oct-2015 12:54:22 npm ERR! oracledb@0.6.0 install: `node-gyp rebuild` 12-Oct-2015 12:54:22 npm ERR! Exit status 1 12-Oct-2015 12:54:22 npm ERR! 12-Oct-2015 12:54:22 npm ERR! Failed at the oracledb@0.6.0 install script 'node-gyp rebuild'. 。发生这种情况时,我收到以下错误:

PATH="C:\Program Files\nodejs"

它说节点不是公认的命令,但我可以确认它肯定在系统路径中,如果我通过命令提示符手动执行命令,依赖关系安装正常(更不用说,全部安装好的其他依赖项安装得很好。

有谁知道怎么解决这个问题?我尝试在Windows中设置系统路径,并尝试通过添加以下环境变量在Bamboo任务中设置自己的环境变量:sub('\\s*,.*','', X) - 我不确定是什么别的尝试。

4 个答案:

答案 0 :(得分:4)

我遇到了同样的问题,也使用了oracledb模块。问题是,当npm开始安装软件包时,它意识到必须重建oracledb软件包。这就是为什么它想要执行“节点重建”命令,但不知道“节点”是什么 - 如你所提到的那样,它发生因为它没有看到你的windows代理的环境变量

解决方法是在执行npm之前逐个设置environmet变量,在竹任务中

最好的部分是,你不能使用bamboo的npm任务(尽管它在高级选项下有env。变量的参数 - 它对我来说不起作用)。你必须写一个普通脚本任务,看起来像那样:

REM #Set environment variables
set PATH=........;C:\path\to\nodejs\;........
set OCI_INC_DIR=C:\path\to\oracle\instantclient\sdk\include
set OCI_LIB_DIR=C:\path\to\oracle\instantclient\sdk\lib\msvc
REM #Install node modules
npm i

因此,从Windows设置复制的整个PATH变量必须包含nodejs的路径!设置oracle即时客户端,然后安装节点包。

真的很难看并搞砸了解决方案,但它确实有效。我只有Windows版本才有这个问题。在Linux代理上构建时,一切都按预期工作。

希望这有助于:)

答案 1 :(得分:2)

要解决此问题,您需要在应用程序路径中指定高级设置 enter image description here

答案 2 :(得分:0)

在Windows上,我的关键是做Path =而不是PATH =。一旦我纠正了案例,将以下内容置于环境变量下面为我工作:

Path=c:\nodejs\bin

答案 3 :(得分:-1)

'node'未被识别为内部或外部命令可操作程序或批处理文件。

我也遇到了这个问题,这就是我如何纠正它,我在每个任务中设置Node.js可执行文件,如下所示,

Add new exec

这使得bamboo使用提供的可执行文件,而不是从windows环境路径获取可执行文件路径。

希望这有帮助。

相关问题