Gulp command not found after install

MacosBashTerminalNpmGulp

Macos 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.


How to: change permissions in order to run npm without sudo

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

  1. npm uninstall gulp

  2. 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.

  1. Removing gulp again with sudo
  2. Changing the owner of /usr/local/lib/node_modules to my user
  3. 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:

  1. I added %AppData%\npm to my Path environment variable
  2. Closed all gitbash (cmd, powershell, etc...) and restarted gitbash.
  3. 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.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestioniluvpinkertonView Question on Stackoverflow
Solution 1 - MacosiluvpinkertonView Answer on Stackoverflow
Solution 2 - MacosthehmeView Answer on Stackoverflow
Solution 3 - MacosSteve GoldbergView Answer on Stackoverflow
Solution 4 - MacossharkView Answer on Stackoverflow
Solution 5 - MacosAtul KumarView Answer on Stackoverflow
Solution 6 - MacosZack HustonView Answer on Stackoverflow
Solution 7 - MacosAbinet KenoreGetachewView Answer on Stackoverflow
Solution 8 - MacosSergey AndreevView Answer on Stackoverflow
Solution 9 - MacosTony LisantiView Answer on Stackoverflow
Solution 10 - MacosBalram SinghView Answer on Stackoverflow
Solution 11 - MacosAltairView Answer on Stackoverflow
Solution 12 - Macoswilssin88View Answer on Stackoverflow