在Windows上使用npm install时,Jenkins脚本过早退出

时间:2013-05-31 12:02:56

标签: node.js jenkins npm gruntjs

在我的Jenkins工作中,我想使用Grunt构建一个JavaScript应用程序。 Jenkins构建脚本创建一个构建目录(如果它尚不存在),对该目录的更改并运行:

npm install grunt
npm install grunt-zip
grunt --gruntfile=[something]

(当然grunt-cli是全局安装的。)当我构建作业时,第一个语句会导致Grunt和依赖关系按预期被拉下来。但是,作业会成功终止:

Archiving artifacts
No emails were triggered.
Finished: SUCCESS

第二个npm install未运行。知道为什么脚本在运行npm install后终止而不是继续后续的语句时终止了吗?

3 个答案:

答案 0 :(得分:42)

事实证明npm是批处理文件,而不是可执行文件,因此需要使用Jenkins脚本中的call调用它:

call npm install grunt

答案 1 :(得分:1)

我建议不要使用本地grunt / nodejs安装,而是让jenkins为你做这个!

它更容易,意味着与系统特定的安装和变量的耦合更少。

步骤进行:

a)使用nodejs jenkins插件+让它在machine / grunt-cli上安装nodejs - > Jenkins integration with Grunt

b)使用所需的任何nodejs依赖填充你的package.json,例如grunt / grunt-zip等

c)运行grunt时,只需在“grunt”命令

之前执行“npm update”

这样你没有做明确的npm安装,它都是从你的package.json配置的,你的构建脚本会不那么脆弱,你的开发人员可以使用与构建服务器相同的步骤,例如“npm update; grunt”本地与构建服务器相同

答案 2 :(得分:0)

针对未来的Google员工:

为此使用命令链。

这有效: npm install && npm install安装grunt-zip

这行不通: npm安装 npm安装grunt-zip