commande bower introuvable

158

J'ai essayé d'installer Twitter Bower sur mon Mac et j'ai utilisé

npm install bower -g

Ensuite, j'ai essayé bower --help, et la sortie était bower command not found. Pourquoi donc?

Amo Wu
la source
2
De quoi provient la sortie npm install? Cela a-t-il échoué? At-il installé le bower à un endroit pas sur votre PATH?
jches
duplication possible de "commande introuvable" après l'installation
Sindre Sorhus

Réponses:

365

Tout comme dans cette question ( préfixe de chemin global npm ), tout ce dont vous avez besoin est de définir correctementnpm prefix .

UNIX:

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

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

Windows et NVM:

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

Ensuite, bowerdevrait être situé juste dans votre fichier $PATH.

Petr Joachim
la source
1
Je voudrais ajouter que ce n'est pas la réponse la plus correcte si vous travaillez avec plusieurs projets. Bower doit être installé node_moduleslocalement à partir de package.jsonet non globalement, car différents projets peuvent utiliser différentes versions (c'est tout l'intérêt de npm). Le vrai problème est que le système ne parvient pas à trouver l'exécutable local du bower.
Bruno Finger
@BrunoFinger: Lors de l'installation de bower sur une portée globale, cette réponse ne résout pas le problème. Cependant, l'utilisation de packages de nœuds locaux peut être une meilleure façon de gérer les outils spécifiques au projet.
Petr Joachim
Je pense que si le préfixe npm est défini sur / usr / local, npm install -g échouera sans sudo.
imafish
Nous ne recommandons pas d'utiliser Bower pour de nouveaux projets. Veuillez considérer Yarn et Webpack ou Parcel.
Daniel
60

Je suis presque sûr que vous ne l'installez pas correctement. Puisque vous essayez de l'installer globalement, vous devrez l'exécuter avec sudo:

sudo npm install -g bower
Erick Ruiz de Chavez
la source
3
C'est ainsi que bower doit être installé, sinon il sera simplement installé sur le dossier où vous avez exécuté la commande. -g signifie global et crée également les liens requis pour les modules qui peuvent être exécutés en tant que commandes système, bower, grunt-cli, voire npm en sont des exemples clairs.
Erick Ruiz de Chavez
N'installez pas avec sudo! Utilisez simplement Brew Doctor et apportez les correctifs suggérés par Brew Doctor et vous n'aurez plus besoin d'utiliser sudo!
djangofan
4

Cela s'est avéré ne pas être un problème de bower, bien que cela se soit manifesté pour moi avec bower.

Cela semble être un problème de nœud. Si un fichier est dans le chemin, mais que le bit setuid / setgid est défini, il ne le trouvera pas.

Voici un fichier avec le bit s défini: (unix 'qui' le trouvera sans problème).

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

Voici une tentative de nœud qui:

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

Je change les permissions (chomd 755 git). Maintenant node-qui peut le trouver.

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

J'espère que cela t'aides.

user3112929
la source
3

J'utilise le gestionnaire de versions de nœuds. J'obtenais ce message d'erreur car j'étais passé à une version différente de node. Lorsque je suis revenu à la version du nœud où j'ai installé bower, cette erreur a disparu. Dans mon cas, la commande étaitnvm use stable

abeille
la source
3

Alternativement, vous pouvez utiliser npxce qui vient avec le npm> 5.6.

npx bower install

Kuldeep Saxena
la source
1
Cela devrait être la réponse acceptée. Vous ne devriez jamais installer de modules globaux avec npm.
chovy le