l'installation de bower ne fait rien, pas même une erreur

15

Je suis sur Ubuntu 14.04. Je l'ai fait sudo apt-get install npm. Puis je l'ai fait npm install -g bower, ce qui a réussi.

Avec which npm, je reçois /usr/bin/npm/.
Avec which bower, je reçois /usr/local/bin/bower.

J'ai cloné un référentiel github qui avait un bower.json. J'essaye de faire bower installà la racine mais rien ne se passe. Comme dans, il ne fait écho à rien, n'installe rien. Cela ne fait tout simplement rien. J'ai essayé bower --helpet rien ne vient.

J'ai essayé sudo apt-get updateet ça dit npmest à jour. Nodejsexiste aussi. Chaque fois que je fais quelque chose avec npm, cela ne fait tout simplement rien.

EDIT: quand je le fais npm --global ls, bower est répertorié dans les répertoires

Quel pourrait être le problème ici et comment puis-je le résoudre?

corvid
la source
Quel est le contenu du bower.jsonfichier? Pourriez-vous fournir le lien vers le référentiel?
Lucio

Réponses:

14

J'ai eu le même problème. Cela semble provenir d'un package de nœuds incorrect.

La suppression du package de noeud et l'installation du package hérité ont plutôt fonctionné pour moi:

apt-get remove node
apt-get autoremove
apt-get install nodejs-legacy
Sivaraj D
la source
cela a fonctionné. J'ai construit nodejs à partir de la source pour le faire fonctionner
corvid
18

Ce travail pour moi:

bower install --force

--forceinstaller avec force

vigne
la source
1
Eh bien, ça a fait l'affaire pour moi mais je me demande pourquoi j'ai dû le forcer. Je vous remercie.
Luis Milanese
Tu m'as sauvé la vie ...
Jean-Luc Barat
4

Vous avez vérifié which npmet which bower, mais vous n'avez pas vérifié which node. Sur Ubuntu, le nodepackage n'est pas lié à NodeJS. Le package NodeJS est installé en tant que nodejs, ce qui interrompra tous les scripts qui en dépendent node. Ceci est similaire à une autre question où une installation globale de jshint ne fonctionnait pas .

En supposant que vous avez nodejsinstallé, vous pouvez créer un lien symbolique qui nodepointe vers nodejs:

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

Si cela ne fonctionne pas, ou si vous préférez ne pas utiliser la version de NodeJS dans les référentiels officiels, vous pouvez installer Node à partir d'un PPA (qui vous donnera les deux nodeet les nodejscommandes) ou utiliser NVM (qui est ma préférence personnelle, comme cela évite d'avoir à sudoinstaller des modules npm).

Michael Martin-Smucker
la source
Eh bien, en plus de créer un lien symbolique, je dois également supprimer le package de noeud. Comme mentionné dans l'autre réponse, ce package de nœuds se déguise en package de nœuds réel. Ainsi, même si après avoir créé un lien symbolique pour nodejs, la nodecommande fait référence à un programme Amateur Packet Radio Node, et non aux nodejs réels que nous désirons.
Lokesh Rajwani,
3

Sur Ubuntu 14.04, je l'ai résolu avec:

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
la source
0

Pour tous ceux qui rencontrent ce problème, mais tous les autres correctifs ne fonctionnent pas. J'ai trouvé que je tapais la mauvaise commande, j'ai pensé qu'il avait besoin d'un nodejs avant la commande comme:

nodejs bower install

Mais bower s'exécute directement depuis le terminal

bower install

Stupide je sais!

Matthew Dolman
la source
0

Ubuntu 16.04 et versions ultérieures

Dans Ubuntu 16.04 et versions ultérieures, le gestionnaire de packages Bower peut être installé rapidement et facilement à partir de l'application Ubuntu Software. Ouvrez le logiciel Ubuntu, recherchez «bower» et cliquez sur le bouton Installer pour l'installer. Dans toutes les versions d'Ubuntu actuellement prises en charge, ouvrez le terminal et tapez:

sudo snap install bower --classic  

entrez la description de l'image ici

Le package snap bower sera mis à jour automatiquement lorsque des mises à jour seront disponibles.

Karel
la source