a instalação do caramanchão não faz nada, nem gera um erro

15

Estou no Ubuntu 14.04. Eu fiz sudo apt-get install npm. Então eu fiz npm install -g bower, que foi bem sucedido.

Com which npm, eu entendo /usr/bin/npm/.
Com which bower, eu entendo /usr/local/bin/bower.

Eu clonei um repositório do github que tinha um bower.json. Eu tento fazer bower installna raiz, mas nada acontece. Como em, não ecoa nada, não instala nada. Simplesmente não faz ... nada. Eu tentei bower --helpe nada aparece.

Eu tentei sudo apt-get updatee diz que npmestá atualizado. Nodejsexiste também. Sempre que faço algo com o npm, ele simplesmente não faz nada.

EDIT: quando eu faço npm --global ls, bower está listado nos diretórios

Qual poderia ser o problema aqui e como posso corrigi-lo?

Corvid
fonte
Qual é o conteúdo do bower.jsonarquivo? Você poderia fornecer o link para o repositório?
Lucio

Respostas:

14

Eu tive o mesmo problema. Parece ser causado por um pacote de nó incorreto.

A remoção do pacote do e a instalação do pacote herdado funcionaram para mim:

apt-get remove node
apt-get autoremove
apt-get install nodejs-legacy
Sivaraj D
fonte
isso funcionou. Eu construí nodejs de fonte para fazê-lo funcionar
corvid
18

Este trabalho para mim:

bower install --force

onde o --forceinstalar com força

vinha
fonte
11
Bem, fez o truque para mim, mas me pergunto por que tive que forçá-lo. Obrigado.
Luis Milanese
Você salvou minha vida ...
Jean-Luc Barat
4

Você verificou which npme which bower, mas não verificou which node. No Ubuntu, o nodepacote não está relacionado ao NodeJS. O pacote NodeJS é instalado como nodejs, o que interromperá qualquer script que dependa node. Isso é semelhante a outra pergunta em que uma instalação global do jshint não estava funcionando .

Supondo que você tenha nodejsinstalado, você pode criar um link simbólico para que nodeaponte para 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, poderá instalar o Node a partir de um PPA (que fornecerá comandos nodee ambos nodejs) ou usar o NVM (que é minha preferência pessoal, como evita a necessidade de sudoinstalar módulos npm).

Michael Martin-Smucker
fonte
Bem, além de criar um link simbólico, também tenho que remover o pacote do nó. Conforme mencionado na outra resposta, esse pacote de nós está disfarçando ser um pacote real do nodejs. Portanto, mesmo depois de criar um link simbólico para o nodejs, o nodecomando realmente se refere a algum programa Amateur Packet Radio Node, e não aos nodejs reais que desejamos.
Lokesh Rajwani
3

No Ubuntu 14.04, resolvi-o 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
Kenneth Jiang
fonte
0

Para quem está tendo esse problema, mas todas as outras correções não funcionam. Descobri que estava digitando o comando errado, achei que precisava de um nodejs antes do comando, como:

nodejs bower install

Mas o caramanchão apenas executa direto do terminal

bower install

Estúpido eu sei!

Matthew Dolman
fonte
0

Ubuntu 16.04 e posterior

No Ubuntu 16.04 e posterior, o gerenciador de pacotes Bower pode ser instalado de maneira rápida e fácil a partir do aplicativo Ubuntu Software. Abra o Software Ubuntu, procure por "bower" e clique no botão Instalar para instalá-lo. Em todas as versões atualmente suportadas do Ubuntu, abra o terminal e digite:

sudo snap install bower --classic  

insira a descrição da imagem aqui

O pacote de encaixe da bower será atualizado automaticamente quando houver atualizações disponíveis.

karel
fonte