bower command not found
Asked Answered
B

5

168

I tried to install twitter bower on my Mac, and I used

npm install bower -g

Then I tried bower --help, and the output was bower command not found. Why is that?

Benzaldehyde answered 11/9, 2012 at 12:9 Comment(3)
What is the output from npm install? Did it fail? Did it install bower to some location not on your PATH?Squamation
possible duplicate of "command not found" after installationLiripipe
Related posts - bower is not recognised as an internal or external command & bower command not found windowsShroudlaid
U
375

Just like in this question (npm global path prefix) all you need is to set proper npm prefix.

UNIX:

$ npm config set prefix /usr/local
$ npm install -g bower

$ which bower
>> /usr/local/bin/bower

Windows ans NVM:

$ npm config set prefix /c/Users/xxxxxxx/AppData/Roaming/nvm/v8.9.2
$ npm install -g bower

Then bower should be located just in your $PATH.

Unreason answered 17/12, 2013 at 7:17 Comment(4)
I would like to add that this is not the most correct answer if you work with multiple projects. Bower should be installed in the node_moduleslocally from package.json and not globally, since different projects can use different versions (that's the whole point of npm). The real problem is that the system is not able to find the local bower executable.Kavanagh
@BrunoFinger: When installing bower to global scope, that answer is not solving the problem. However using local node packages might be a better way of dealing with project specific tools.Unreason
I think if npm prefix is set to /usr/local, npm install -g will fail without sudo.Gradus
We don't recommend using Bower for new projects. Please consider Yarn and Webpack or Parcel.Empty
A
66

I am almost sure you are not actually getting it installed correctly. Since you are trying to install it globally, you will need to run it with sudo:

sudo npm install -g bower
Alexandros answered 5/12, 2013 at 0:20 Comment(2)
That is how bower must be installed, otherwise it will be just installed on the folder where you executed the command. -g means global and it also creates the required links for modules that can be executed as system commands, bower, grunt-cli, even npm are clear examples of this.Alexandros
Dont install with sudo! Just use brew doctor and make the fixes that brew doctor suggests and then you wont need to use sudo!Ettie
P
7

Alternatively, you can use npx which comes along with the npm > 5.6.

npx bower install

Philemon answered 2/7, 2019 at 19:5 Comment(1)
This should be the accepted answer. You shouldn't ever install global modules with npm.Cage
L
4

This turned out to NOT be a bower problem, though it showed up for me with bower.

It seems to be a node-which problem. If a file is in the path, but has the setuid/setgid bit set, which will not find it.

Here is a files with the s bit set: (unix 'which' will find it with no problems).

ls -al /usr/local/bin -rwxrwsr-- 110 root nmt 5535636 Jul 17 2012 git

Here is a node-which attempt:

> which.sync('git')
Error: not found: git

I change the permissions (chomd 755 git). Now node-which can find it.

> which.sync('git')
'/usr/local/bin/git'

Hope this helps.

Lance answered 18/12, 2013 at 21:30 Comment(0)
T
3

I am using node version manager. I was getting this error message because I had switched to a different version of node. When I switched back to the version of node where I installed bower, this error went away. In my case, the command was nvm use stable

Tees answered 27/1, 2016 at 23:53 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.