node.js - 为 Bamboo build设置环境变量

标签 node.js windows npm bamboo

我有一个 Bamboo 构建,我需要做的其中一件事是执行 npm install 命令。这一切都很好,除非它遇到一个依赖项,该依赖项会生成另一个 Node 实例以在子子进程中运行 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'.

它说 Node 不是可识别的命令,但我可以确认它肯定在系统路径中,如果我通过命令提示符手动执行命令,依赖项安装正常(更不用说,所有其他依赖项了到这个安装好了)。

有谁知道如何解决这个问题?我尝试在 Windows 中设置系统路径,并尝试通过添加以下环境变量在 Bamboo 任务本身中设置我自己的环境变量:PATH="C:\Program Files\nodejs" - 我不确定还能尝试什么。

最佳答案

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

解决方案是在执行 npm 之前逐一设置环境变量在您的 bamboo 任务中

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

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 即时客户端,然后安装 Node 包。

非常丑陋和困惑的解决方案,但它有效。我只有在 Windows 版本中才会遇到这个问题。在 Linux 代理上构建时,一切正常。

希望这可以帮助:)

关于node.js - 为 Bamboo build设置环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33072795/

相关文章:

javascript - 这两种传递url参数的方式有什么区别 "/blog/12"和 "/blog?id=12"

node.js - 使用 Angular 和 Nodejs 将文件保存到 mongodb

c++ - Windows 的 SetEvent 的确切行为是什么?

windows - 如何隐藏批处理输出

javascript - 如何在 Ubuntu 上从命令行运行这个 html-minifier?

node.js - React Sortable Tree - 我可以通过查找树数据的类型来给出外部按钮 "Add node"吗?

ruby-on-rails - 有没有办法在 Windows 机器上运行 Ruby on Rails 应用程序?

javascript - 找不到模块 : Can't resolve 'autosuggest-highlight/match'

Node.js 和 npm : How can I create custom npm cli commands?

mysql - 从表执行查询并根据结果执行另一个查询?