bower install does nothing, not even throw an error

I am on Ubuntu 14.04. I did sudo apt-get install npm. Then I did npm install -g bower, which was successful.

With which npm, I get /usr/bin/npm/.
With which bower, I get /usr/local/bin/bower.

I cloned a github repository which had a bower.json. I try to do bower install in the root but nothing happens. As in, it doesn't echo anything, doesn't install anything. It simply does... nothing. I tried bower --help and nothing comes up.

I tried sudo apt-get update and it says npm is up to date. Nodejs exists too. Whenever I do anything with npm, it simply does nothing.

EDIT: when I do npm --global ls, bower is listed in the directories

What could be the problem here and how can I fix it?


Solution 1:

This work for me:

bower install --force

where the --force to install forcefully

Solution 2:

I had the same problem. It seems to be caused by an incorrect node package.

Removing the node package and installing the legacy package instead worked for me:

apt-get remove node
apt-get autoremove
apt-get install nodejs-legacy

Solution 3:

You checked which npm and which bower, but you didn't check which node. On Ubuntu, the node package is unrelated to NodeJS. The NodeJS package is installed as nodejs, which will break any scripts that depend on node. This is similar to another question where a global installation of jshint wasn't working.

Assuming you have nodejs installed, you can create a symlink so that node points at nodejs:

sudo ln -s /usr/bin/nodejs /usr/bin/node

If that doesn't work, or if you prefer not to use the version of NodeJS in the official repositories, you can install Node from a PPA (which will give you both node and nodejs commands) or use NVM (which is my personal preference, as it avoids the need for sudo when installing npm modules).