ng is not recognised as an internal or external command. Jenkins + Angular CLI

D.B picture D.B · Nov 15, 2017 · Viewed 11.9k times · Source

I am trying to setup Jenkins for an Angular CLI project. I have installed node and Angular Cli on the Jenkins server under a specific user account. if I open a command prompt on the server an execute the following commands to verify they are installed properly, this is the result:

enter image description here

I have configured the project with Jenkins, and i created two build steps two execute two bat files.

One runs: npm install

and the second one runs: ng build --prod

Then I build Jenkins, it runs the npm install but it fails running ng build --prod because it says " 'ng' is not recognised as an internal or external command".

Am I doing something wrong? Is there another way to probably use the angular cli on the node_modules folder, So it does not need to use the angular cli installed on the server. It seems like Angular CLI is installed only for my user on the server but not for the user Jenkins use to build.

PS: I installed Angular CLI globally using:

npm i -g @angular/cli

Answer

angularrocks.com picture angularrocks.com · Nov 15, 2017

No need to install angular cli on server, just run

npm run ng -- build 

That will run the local version from your project devDependencies

This way you can pass any flag to your local cli npm run ng -- test, npm run ng -- lint, etc

You can pass additional flags to ng just like that
run ng -- build --prod

More details at https://docs.npmjs.com/cli/run-script