Jenkins script quitting prematurely when using npm install on Windows

时光怂恿深爱的人放手 提交于 2019-12-04 17:29:31

问题


In my Jenkins job I want to build a JavaScript app using Grunt. The Jenkins build scripts creates a build directory (if it doesn't already exist), changes to that directory and runs:

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

(Of course grunt-cli is installed globally.) When I build the job, the first statement causes Grunt and dependencies to be pulled down as expected. However, the job then terminates successfully:

Archiving artifacts
No emails were triggered.
Finished: SUCCESS

The second npm install is not run. Any idea why the script is terminating after running npm install instead of continuing to the subsequent statements?


回答1:


So it turns out that npm is a batch file, not an executable, so it needs to be invoked using call from the Jenkins script:

call npm install grunt



回答2:


i would recommend not using the local grunt / nodejs install, but instead getting jenkins to do this for you!

it's much easier and means there's less coupling to system specific installs and variables.

steps:

a) use nodejs jenkins plugin + get it to install nodejs on machine/grunt-cli -> Jenkins integration with Grunt

b) populate your package.json with any nodejs dependances required, eg grunt/grunt-zip etc

c) when running grunt just do a "npm update" before "grunt" command

that way your not doing explicit npm install, it's all configured from your package.json, and your build scripts will be less brittle, and your developers can use the same steps as the build server, eg "npm update;grunt" locally same as build server



来源:https://stackoverflow.com/questions/16856826/jenkins-script-quitting-prematurely-when-using-npm-install-on-windows

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!