Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

'express' command not found on mac

Definitely a noob question so please don't judge but this has been bothering me for a while.

No more how many times I run $ sudo npm install -g express-generator or $ npm install express -g, everything seems to install but the command $ express still doesn't exist.

I'm running fish shell. Also, I'm assuming this is an issue coming from my PATH file, but I'm lost on if that's .bash_profile or .bashrc.

My .bash_profile has the three lines in it:

  export PATH=/usr/local/bin:$PATH
  export PATH=/Users/username/.node/lib/node_modules/express-generator/bin/express:$PATH
  export PATH=/Users/username/.node/bin/express:$PATH

and my .bashrc file has nothing regarding node in it.

When express installs, it returns:

  /Users/username/.node/bin/express -> /Users/username/.node/lib/node_modules/express-generator/bin/express
  /Users/username/.node/lib 

but when I command which node it returns

/usr/local/bin/

When I try to run $ls -l /usr/local/bin/express it returns:

ls: /usr/local/bin/express: No such file or directory

Cannot find the diagnosis of why the express command won't work after installation.

like image 647
fullwackdeveloper Avatar asked Apr 21 '26 05:04

fullwackdeveloper


2 Answers

If you are running fish, your .bash_profile is ignored, of course!

The preferred way to add /Users/username/.node/bin/ to your $PATH in fish is like so:

set -U fish_user_paths $fish_user_paths /Users/username/.node/bin/

that's just something you run once, at the command line - not something you put in a startup file.

If you prefer to use startup files, you can instead modify your ~/.config/fish/config.fish like so:

set PATH $PATH /Users/username/.node/bin/
like image 135
ridiculous_fish Avatar answered Apr 23 '26 21:04

ridiculous_fish


From the symlink after the install, the express binary should be available in the /Users/username/.node/bin directory. The reason you can't use the binary is because the /Users/username/.node/bin directory is not in your $PATH. Whats in the $PATH is the binary itself.

When you add a directory to your $PATH, you can execute binaries from within the directory. Currently, your $PATH points to the /Users/username/.node/bin/express which does not have any binaries within it. You should correct it to:

export PATH=/Users/username/.node/bin:$PATH
like image 38
gnerkus Avatar answered Apr 23 '26 21:04

gnerkus



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!