Eu tive o mesmo problema. Parece ser causado por um pacote de nós incorreto.
Remover o pacote de nós e instalar o pacote legado funcionou para mim:
apt-get remove node
apt-get autoremove
apt-get install nodejs-legacy
Eu estou no Ubuntu 14.04. Eu fiz sudo apt-get install npm . Então eu fiz npm install -g bower , o que foi bem sucedido.
Com which npm , recebo /usr/bin/npm/ .
Com which bower , recebo /usr/local/bin/bower .
Eu clonei um repositório do github que tinha bower.json . Eu tento fazer bower install na raiz, mas nada acontece. Como em, não ecoa nada, não instala nada. Simplesmente não faz nada. Eu tentei bower --help e nada aparece.
Eu tentei sudo apt-get update e ele diz que npm está atualizado. Nodejs existe também. Sempre que faço algo com npm, simplesmente não faz nada.
EDIT: quando eu faço npm --global ls , o bower é listado nos diretórios
Qual poderia ser o problema aqui e como posso corrigi-lo?
Eu tive o mesmo problema. Parece ser causado por um pacote de nós incorreto.
Remover o pacote de nós e instalar o pacote legado funcionou para mim:
apt-get remove node
apt-get autoremove
apt-get install nodejs-legacy
Este trabalho para mim:
bower install --force
em que --force é instalado com força
Você verificou which npm e which bower , mas não verificou which node . No Ubuntu, o pacote node não está relacionado ao NodeJS. O pacote NodeJS é instalado como nodejs , o que quebrará todos os scripts que dependem de node . Isso é semelhante a outra pergunta em que uma instalação global do jshint não estava funcionando .
Supondo que você tenha nodejs instalado, você pode criar um link simbólico para que node atinja nodejs :
sudo ln -s /usr/bin/nodejs /usr/bin/node
Se isso não funcionar, ou se você preferir não usar a versão do NodeJS nos repositórios oficiais, você pode instalar o Node de um PPA (que lhe dará os comandos node e nodejs ) ou use NVM ( qual é minha preferência pessoal, pois evita a necessidade de sudo ao instalar módulos npm).
No Ubuntu 14.04, resolvi com:
sudo apt-get remove npm
sudo apt-get remove node
sudo apt-get autoremove
sudo apt-get update
sudo apt-get install nodejs
sudo ln -s /usr/bin/nodejs /usr/bin/node
Para qualquer um que tenha esse problema, mas todas as outras correções não funcionam. Eu achei que estava digitando o comando errado, achei que precisava de um nodejs antes do comando como:
nodejs bower install
Mas o bower é executado diretamente do terminal
bower install
estúpido eu sei!
No Ubuntu 16.04 e posterior, o gerenciador de pacotes Bower pode ser instalado rápida e facilmente a partir do aplicativo Ubuntu Software. Abra o software Ubuntu, procure por "bower" e clique no botão Instalar para instalá-lo. No Ubuntu 14.04 e depois abra o terminal e digite:
sudo snap install --classic bower
Tags npm