chody
chody

Reputation: 209

ng: command not found

I am trying to run ng build in my project folder, but I get the following response:

bash: ng: command not found

What am I missing? Does it have to do with admin privileges, my path/profile, or something I need to install globally?

This is my package.json:

{
"name": "meanauthapp",
"version": "1.0.0",
"description": "MEAN stack authentication app",
"main": "app.js",
"scripts": {
"start": "node app"
},
"dependencies": {
"express": "4.16.2",
"mongoose": "4.13.6",
"bcryptjs": "2.4.3",
"cors": "2.8.4",
"jsonwebtoken": "8.1.0",
"body-parser": "1.18.2",
"passport": "0.4.0",
"passport-jwt": "3.0.1"
},
"author": "",
"license": "MIT",
"devDependencies": {
  "@angular/cli": "^1.6.0"
  }
}

Upvotes: 9

Views: 31315

Answers (13)

Belkasmi
Belkasmi

Reputation: 501

Install Angular if it is not installed by running this command:

npm install -g @angular/cli@latest

Modify .bashrc by adding this line:

alias ng="/usr/local/lib/node_modules/node/lib/node_modules/@angular/cli/bin/ng.js"

Source .bashrc by executing this line:

source ~/.bashrc

This was tested with Fedora 40 & Node 20.

Upvotes: 0

Nikhil Mishra
Nikhil Mishra

Reputation: 31

If you are on mac and using nvm then just alias you nvm dir node versions like this

alias ng=/Users/your-user/.nvm/versions/node/v14.16.0/lib/node_modules/@angular/cli/bin/ng

Upvotes: 0

Maor
Maor

Reputation: 73

In my case, I have just copied a whole repository (including its node_modules) from a Windows machine to a Linux machine, and running npx ng XXX failed with the following error:

npx: installed 1 in 1.677s
command not found: ng

The main issue was, of course, line breaks. Using the dos2unix package, I was able to overcome it:

sudo apt install -y dos2unix
dos2unix node_modules/.bin/ng
chmod +x node_modules/.bin/ng

Upvotes: 0

David
David

Reputation: 6111

I had the same error, but I am running Windows 10 and none of answers worked for me. These were the steps I took to get it resolved:

Verify Angular is installed by running the following command in Git BASH:

npm run ng -v

Install Angular if it is not already installed by running the following command:

npm install -g @angular/cli@latest

Get the npm PATH by running the following command:

npm config get prefix

Open up advanced system settings by either using the shortcut windows+pause (aka break) and clicking on Advanced System Settings or by using Cortana to search for the phrase System Environment Variables

Click on Environment Variables to bring up the environment variables dialog.

Select the row for the user variable Path and click on Edit

Click on New and enter the path returned from earlier. Then click on OK and OK again to close out of the Environment Variables dialog.

Restart Git BASH and test that it working by running the command:

ng -v

Upvotes: 1

Chandan S
Chandan S

Reputation: 173

If you have installed the dependencies locally and need to refer those packages instead of global. use npx before the the command eg: npx ng build refers to the locally installed package. ng build refers to the global package.

Upvotes: 2

Abhishek Kumar
Abhishek Kumar

Reputation: 41

For windows user: Just go to your windows environment setting and set user path as C:\Users\HP\AppData\Roaming\npm

Upvotes: 2

Roberto Zavala
Roberto Zavala

Reputation: 11

This was a pain to figure out, so here is my solution

1. npm install -g @angular/cli

2. Make sure the ng path is correct
    * cd ~/npm-global/bin
    * ls and make sure ng exists here!
3. create .bashrc or .bash_profile or .bash_everything file on your home directory with:
    * touch ~/.bash_profile 
open this file with text editor or Sublime or vi or etc.
    * open -e .bash_profile 
4. Add ng as alias
    * writing this:
   alias ng="~/npm-global/bin/ng"  or   alias ng="MyFullPAThere/npm-global/bin/ng"
    * save file and close text editor. 
5. Temporarily Update . bash_profile reference
Your terminal wont take bash updates until a restart but the following command will let you use the updates during the terminal session:
    * source ~/.bash_profile
6. Check that ng works
    * ng --version

Hope that helps someone!

Upvotes: 1

Christian Groleau
Christian Groleau

Reputation: 812

In case others come here with this issue as I have, here is how I solved it system-wide on MacOS. Hope this helps.

Verify node is installed:

$ node -v
v11.2.0

Verify npm is installed:

$ npm -v
6.4.1

Verify your npm global install file path is configured (known as prefix). Mine is under ~/.npm-packages:

$ npm config ls -l | grep prefix
prefix = "/Users/christiangroleau/.npm-packages"

If not, you can place it into your ~/.npmrc file:

echo prefix=~/.npm-packages >> ~/.npmrc

Verify that your prefix path is listed in your system PATH:

$ echo $PATH
/Users/christiangroleau/.npm-packages/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

If not, invoke the following:

export PATH="$HOME/.npm-packages/bin:$PATH"

Finally, you can reinstall angular-cli (in my case I needed to install it globally):

$ npm install -g @angular/cli

Verify installation:

$ ng -v

Upvotes: 7

sn42
sn42

Reputation: 2444

Based on your comments to other answers: This npm issue might be related to your problem, your npm installation might be outdated.

First of check whether you use a recent version of node. Then update npm with npm i -g npm as the issue suggests (near bottom). Then if ng is still not found follow the update instructions of @angular/cli:

npm uninstall -g @angular/cli
npm cache verify
# if npm version is < 5 then use 'npm cache clean'
npm install -g @angular/cli@latest

Upvotes: 0

Hasan Fathi
Hasan Fathi

Reputation: 6106

npm doesn't recognize ng command.

Try this command:

npm link @angular/cli

to link npm and angular-cli.

Upvotes: 7

Zlatko
Zlatko

Reputation: 19569

Try this:

node_modules/.bin/ng build

Or better, add a blank "ng": "ng"line into your scripts key in package.json and run this:

`npm run ng build`

You could also add this to your path:

export PATH=$PATH:./node_modules/bin

Which would let you run any binary in any npm project you might have.

Upvotes: 5

Sachila Ranawaka
Sachila Ranawaka

Reputation: 41407

try to uninstall and clean the cache.

npm uninstall -g @angular/cli
npm cache clean
npm install -g @angular/cli

Upvotes: 6

JSON Derulo
JSON Derulo

Reputation: 17580

You need to install the Angular CLI globally. Run npm install -g @angular/cli

Upvotes: 2

Related Questions