Gulp command not found after install
MacosBashTerminalNpmGulpMacos Problem Overview
I installed gulp(globally) and it looks like it worked because it ran this code:
├── tildify@0.2.0
├── interpret@0.3.5
├── pretty-hrtime@0.2.1
├── deprecated@0.0.1
├── archy@0.0.2
├── minimist@0.2.0
├── semver@2.3.2
├── orchestrator@0.3.7 (stream-consume@0.1.0, sequencify@0.0.7, end-of-stream@0.1.5)
├── chalk@0.5.1 (escape-string-regexp@1.0.1, ansi-styles@1.1.0, supports-color@0.2.0, strip-ansi@0.3.0, has-ansi@0.1.0)
├── gulp-util@2.2.20 (lodash._reinterpolate@2.4.1, dateformat@1.0.8-1.2.3, vinyl@0.2.3, through2@0.5.1, multipipe@0.1.1, lodash.template@2.4.1)
├── liftoff@0.12.0 (extend@1.2.1, minimist@0.1.0, resolve@0.7.4, findup-sync@0.1.3)
└── vinyl-fs@0.3.5 (graceful-fs@3.0.2, lodash@2.4.1, mkdirp@0.5.0, strip-bom@0.3.1, vinyl@0.2.3, through2@0.5.1, glob-watcher@0.0.6, glob-stream@3.1.14)
But when I type gulp
it says -bash: gulp: command not found
Any idea what's going on?
Macos Solutions
Solution 1 - Macos
Turns out that npm was installed in the wrong directory so I had to change the “npm config prefix” by running this code:
npm config set prefix /usr/local
Then I reinstalled gulp globally (with the -g param) and it worked properly.
This article is where I found the solution: http://webbb.be/blog/command-not-found-node-npm
Solution 2 - Macos
Not sure why the question was down-voted, but I had the same issue and following the blog post recommended solve the issue. One thing I should add is that in my case, once I ran:
npm config set prefix /usr/local
I confirmed the npm root -g
was pointing to /usr/local/lib/node_modules/npm
, but in order to install gulp
in /usr/local/lib/node_modules
, I had to use sudo
:
sudo npm install gulp -g
Solution 3 - Macos
If you're using tcsh
(which is my default shell on Mac OS X), you probably just need to type rehash
into the shell just after the install completes:
npm install -g gulp
followed immediately by:
rehash
Otherwise, if this is your very first time installing gulp
, your shell may not recognize that there's a new executable installed -- so you either need to start a new shell, or type rehash
in the current shell.
(This is basically a one-time thing for each command you install globally.)
Solution 4 - Macos
I realize that this is an old thread, but for Future-Me, and posterity, I figured I should add my two-cents around the "running npm as sudo" discussion. Disclaimer: I do not use Windows. These steps have only been proven on non-windows machines, both virtual and physical.
You can avoid the need to use sudo by changing the permission to npm's default directory.
sudo
How to: change permissions in order to run npm without Step 1: Find out where npm's default directory is.
- To do this, open your terminal and run:
npm config get prefix
Step 2: Proceed, based on the output of that command:
- Scenario One: npm's default directory is
/usr/local
For most users, your output will show that npm's default directory is /usr/local, in which case you can skip to step 4 to update the permissions for the directory. - Scenario Two: npm's default directory is
/usr
or/Users/YOURUSERNAME/node_modules
or/Something/Else/FishyLooking
If you find that npm's default directory is not /usr/local, but is instead something you can't explain or looks fishy, you should go to step 3 to change the default directory for npm, or you risk messing up your permissions on a much larger scale.
Step 3: Change npm's default directory:
- There are a couple of ways to go about this, including creating a directory specifically for global installations and then adding that directory to your $PATH, but since /usr/local is probably already in your path, I think it's simpler to just change npm's default directory to that. Like so:
npm config set prefix /usr/local
- For more info on the other approaches I mentioned, see the npm docs here.
Step 4: Update the permissions on npm's default directory:
- Once you've verified that npm's default directory is in a sensible location, you can update the permissions on it using the command:
sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}
Now you should be able to run npm <whatever>
without sudo
. Note: You may need to restart your terminal in order for these changes to take effect.
Solution 5 - Macos
I had similar problem I did the following steps and it worked.Go to mac terminal and execute the commands,
1.npm config set prefix /usr/local
2.sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}
This two commands will set the npm path right and you no longer have to use sudo in npm. Next uninstall the gulp
-
npm uninstall gulp
-
Installl gulp again without sudo, npm install gulp -g
This should work!!
Solution 6 - Macos
I had this problem with getting "command not found" after install but I was installed into /usr/local as described in the solution above.
My problem seemed to be caused by me running the install with sudo. I did the following.
- Removing gulp again with sudo
- Changing the owner of /usr/local/lib/node_modules to my user
- Installing gulp again without sudo. "npm install gulp -g"
Solution 7 - Macos
If you are on Mac run use root privilege
sudo npm install gulp-cli --global
To check if it's installed run
gulp -v
CLI version: 2.2.0 (The output)
> Local version: Unknown
Solution 8 - Macos
You need to do this npm install --global gulp
. It works for me and i also had this problem. It because you didn't install globally this package.
Solution 9 - Macos
I got this working on Win10 using a combination of the answers from above and elsewhere. Posting here for others and future me.
I followed the instructions from here: https://gulpjs.com/docs/en/getting-started/quick-start but on the last step after typing gulp --version I got the message -bash: gulp: command not found
To fix this:
- I added %AppData%\npm to my Path environment variable
- Closed all gitbash (cmd, powershell, etc...) and restarted gitbash.
- Then gulp --version worked
Also, found the below for reasons why not to install gulp globally and how to remove it (not sure if this is advisable though):
https://stackoverflow.com/questions/35571679/what-does-gulp-cli-stands-for
https://stackoverflow.com/questions/53953770/how-to-uninstall-gulp-cli-from-npm-globally
Solution 10 - Macos
In my case adding sudo before npm install solved gulp command not found problem
sudo npm install
Solution 11 - Macos
If you want to leave your prefix intact, just export it's bin dir to your PATH variable:
export PATH=$HOME/your-path/bin:$PATH
I added this line to my $HOME/.profile and sourced it.
Setting prefix to /usr/local
makes you use sudo
, so I like to have it in my user dir. You can check your prefix with npm prefix -g
.
Solution 12 - Macos
Behind corporate proxies the global command usually doesnt work , hence u can run the command where the gulp is installed locally.