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

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

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

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

 Archiving artifacts No emails were triggered. Finished: SUCCESS 

第二个npm install不运行。 任何想法为什么脚本在运行npm install后终止,而不是继续后续的语句?

所以事实certificate, npm是一个batch file,而不是一个可执行文件,所以需要使用Jenkins脚本调用它:

 call npm install grunt 

我会build议不要使用本地grunt / nodejs安装,而是让jenkins为您做到这一点!

这更容易,并且意味着与系统特定的安装和variables的耦合较less。

脚步:

a)使用nodejs jenkins插件+得到它在机器上安装nodejs / grunt-cli – > Jenkins与Grunt集成

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

c)运行grunt时只需在“grunt”命令之前执行“npm update”

这样,你不做明确的npm安装,它们都是从你的package.jsonconfiguration的,而你的构build脚本将不那么脆弱,你的开发人员可以使用与构build服务器相同的步骤,例如“npm update; grunt”build立服务器