commande bower non trouvée windows


107

J'ai d'énormes problèmes en essayant d'utiliser bower (pour installer foundation 5) ou d'obtenir quelque chose de bower lié au travail sur la ligne de commande.

J'ai installé

  • rubis 1.9.3
  • git (avec l'option d'exécution à partir de l'invite de commande)
  • Nodejs

J'ai couru avec succès

npm install -g bower grunt-cli
gem install foundation

et ceux-ci ont bien fonctionné. J'ai regardé dans le npm/node_modulesrépertoire et je peux voir le bowerdossier là-dedans.

Chaque fois que je tape bowersoit dans le cmd, ruby cmdsoit git bashje reçois

commande non reconnue

J'ai défini le chemin git dans les variables d'environnement.

Ce qui est ennuyeux, ce sont les instructions sur le site du bower. Il est dit:

npm install -g bower
bower install

Eh bien, cela ne fonctionne pas!



J'ai récemment écrit un article de blog sur la façon de démarrer avec Bower. C'est super basique et il y a un repo github où vous pouvez vérifier le code. Peut-être que cela vous aidera: thelifelifebalance.com/llb-web-app-series-part-1-bower
cs_stackX

2
J'étais coincé là-dessus pendant un certain temps aussi. Tout a été configuré, redémarré et même grognement a fonctionné alors que Bower ne le ferait pas sur ma nouvelle machine Windows 8.1. Ce n'est que lorsque je suis entré dans le dossier global npm_modules et que j'ai lancé bower à partir de là, qu'il est devenu «décoller». Bower a ensuite travaillé à partir de mon dossier de projet. J'ai redémarré et le problème était toujours résolu ... Réponse étrange, je sais, mais c'est comme ça que ça s'est passé pour moi.
user1889992

Réponses:


247

Je suis tombé sur ce problème après npm install -g boweraussi. J'ai résolu le problème en ajoutant le dossier binaire de npm à mon chemin.

Voici quelques conseils utiles pour ce faire:

  1. Trouvez l'emplacement de vos binaires globaux NPM: npm config get prefix. Ce chemin peut ressembler à quelque chose comme C:\Users\username\AppData\Roaming\npm(ou C:\ProgramData\chocolatey\lib\nodejs.commandline.X.XX.XX\toolssi vous utilisez Chocolatey ).
  2. Ajoutez le chemin de l'étape 1 à votre chemin.

    • Ouvrez le panneau de configuration Windows, recherchez environment, puis cliquez sur l'un edit environment variables for your accountou l' autre , ou sur Modifier les variables d'environnement système`.

    • Recherchez la variable nommée Pathou PATH, ou créez-en une si elle n'existe pas.

    • Collez ici le chemin de l'étape 1 ( ;délimité).

    • Vous devrez peut-être redémarrer votre fenêtre d'invite de commande.

  3. Vous devriez maintenant pouvoir saisir des bowercommandes.


1
Pour les utilisateurs chocolatés: C: \ ProgramData \ chocolatey \ lib \ nodejs.commandline.0.10.33 \ tools
KimchiMan

Fonctionne pour npm 1.3.2et bower 1.7.9.
Animesh Pandey

Dans mon cas, 'C: \ Users \ username \ AppData \ Roaming \ npm' était déjà défini dans les vairables d'environnement, mais l'exécution de 'npm config get prefix' a révélé que le chemin contenait .ssh (C: \ Users \ username \ .ssh \ AppData \ Roaming \ npm) par conséquent, l'écrasement de ceci dans la variable d'environnement a résolu le problème.
Monis Iqbal

pour / f% a ('npm config get prefix') do setx path% a
Alex

Juste pour informer les autres, cela a fonctionné pour moi pour le même problème que j'ai rencontré sur Jenkins sur Windows également, par opposition aux nombreuses réponses pointant vers les diagnostics liés à Jenkins.
Monis Iqbal

19

au cas où cela aiderait.

Je suis un npm / bower nooB - mais ce qui s'est passé dans mon cas, c'est que j'utilisais le didacticiel Angular JS, qui semble avoir configuré bower pour être utilisé via npm , et PAS via la ligne de commande directement.

Remarque: dans mon cas, je pense que mon installation de bower a été gâchée. J'ai couru ceci pour réparer mon installation de bower:

npm install -gf bower

Ensuite, j'ai édité mon fichier bower.json pour ajouter une nouvelle bibliothèque que je voulais utiliser (dans mon cas angular-sanitize)

Je CD vers l'emplacement de mon projet

cd myProjectPath

Ensuite, pour exécuter bower, j'ai en fait utilisé npm install:

npm install

Cela semble exécuter bower comme un paquet de nœuds, qui à son tour analyse bower.json et installe tous les paquets bower manquants.

Pour exécuter bower en tant que package npm, ajoutez npmavant la commande bower:

npm bower -v

J'espère que cela t'aides,

Sean


1
Comment "l'utiliser via npm"?
vapeur le

salut steampowered - euh pour être honnête, cela fait un moment que j'ai écrit ceci. Je pense que je voulais dire que la façon `` normale '' d'exécuter bower est à partir de la ligne de commande: bower mais dans le texte ci-dessus, j'utilisais: npm install
Sean

11

Si les solutions ci-dessus ne fonctionnent pas. Je pense que vous devriez spécifier le chemin absolu pour utiliser le bower dans l'invite de commande. Dans mon dossier d'application, je viens d'appeler

C:\Users\yourusername\AppData\Roaming\npm\bower.cmd install

Ceci est contenu dans mon bower.cmd. Il semble que mes fenêtres ne reconnaissent pas la variable ~ dp0,

node  "C:\Users\yourusername\AppData\Roaming\npm\node_modules\bower\bin\bower" %*

oui, cela a fonctionné comme une installation de bower génial, mais
j'en

Vous avez un message pas de bower.json présent
hfrog713

2

Cela se produira définitivement si votre variable Windows PATH est proche de la longueur de 1024 symboles. Ainsi, les nouveaux liens tels que "C: \ Users \ username \ AppData \ Roaming \ npm" ne rentreront tout simplement pas dans cela.

Vérifiez votre PATH, supprimez des éléments supplémentaires et essayez de réinstaller node.js et bower, etc. Il existe également un moyen d'augmenter la limite de longueur de 1024


1

Comme d'autres l'ont mentionné, il faut ajouter bower dans les variables d'environnement, mais le moyen le plus simple de localiser est simplement de taper d'abord votre emplacement npm, puis d'utiliser Browse Fileet de localiser bower sur votre système (vous pouvez également le rechercher dans la barre de recherche), car le l'emplacement peut varier selon les utilisateurs.

échantillon à ma fin


1

1. Tapez Windows cmd:

for /f %a ('npm config get prefix') do setx path %a

2. Recharger cmd


0

Même problème. Je l'ai résolu en utilisant une autre version de bower. Cela fonctionne lorsque j'ai essayé d'utiliser la version 1.2.6

$ npm install -g bower@1.2.6


0

J'ai eu ce problème après l'installation de Chocolatey 0.9.8.28. J'ai essayé la plupart des solutions répertoriées ici, mais je n'ai pas pu faire reconnaître «bower -v» dans la ligne de commande Powershell. Cela semblait un peu étrange car l'installation de Chocolatey est «tout sur» Powershell. Finalement, j'ai pu réussir en définissant le chemin afin que Powershell puisse trouver les paramètres de variable PATH mis à jour, mais j'avais besoin d'aide pour comprendre pourquoi et comment le faire, ce que je fournis ci-dessous:

Après avoir échoué avec Powershell au départ, j'ai pu accéder à une ligne de commande DOS standard (sans utiliser cmd / c dans PowerShell) et exécuter avec succès toutes les variations de configuration de chemin décrites ci-dessus et avoir réussi à voir les commandes bower et bower reconnues par la ligne de commande DOS. Et la fenêtre cmd a montré le chemin complet mis à jour (C: \ ProgramData \ chocolatey \ lib \ nodejs.commandline.0.10.34 \ tools) - notez que le numéro de version peut changer par rapport à la liste de l'honorable KimchiMan.

Ce PATH a persisté lors de la fermeture et de l'ouverture de nouvelles fenêtres de ligne de commande DOS, mais il n'a (jamais) été reconnu dans aucune fenêtre Powershell.

Ensuite, j'ai découvert la discussion connexe suivante: Définir les paramètres du chemin Powershell.

Cela indique que Powershell reconnaît la version des paramètres de chemin HKLM lors du démarrage. ET il est possible de définir le chemin SOIT DANS la session (non persistante) ou dans le registre (persistant). Ce qui suit est directement issu de cette discussion.

Ces commandes peuvent définir temporairement le PATH pour une SESSION PowerShell:

$env:Path = 'New path'
[System.Environment]::SetEnvironmentVariable('Path', 'New Path', 'Process')

Ces commandes peuvent définir le PATH de manière permanente pour toutes les nouvelles sessions Powershell:

Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Session Manager\Environment' -Name 'Path' -Value 'New Path'
[System.Environment]::SetEnvironmentVariable('Path', 'New Path', 'Machine')

Mais j'ai déjà joué avec la configuration des paramètres de registre par programme auparavant et je ne pense pas qu'une ligne ou deux de script PS soit à la hauteur de la tâche. Alors je n'ai même pas essayé cette option.

Au lieu de cela, je suis allé au panneau de configuration / console système et j'ai changé le chemin via la boîte de dialogue Variables d'environnement. J'ai remarqué que tous les efforts que j'avais faits pour changer le chemin avec set PATH dans une ligne de commande DOS avaient fonctionné pendant la session Windows, mais la nouvelle entrée de chemin n'avait pas été conservée dans les variables d'environnement / registre même si la session Dos s'exécutait en tant que administrateur.

Après avoir effectué cette modification via le panneau de configuration, le chemin mis à jour pour bower dans le dossier des outils de Chococlatey (et vraisemblablement toutes les installations d'outils suivantes) ont été définis de manière permanente et bower était disponible à la fois dans la ligne de commande DOS et dans la ligne de commande Powershell.

J'espère que cela t'aides...


0

Désinstallé 64 bits et installation de la version 32 bits de nodejs avec git- 32 bits a fonctionné!


0

Eu le même problème. Je viens de lancer "npm install -g bower" puis j'ai visité le répertoire où il a été téléchargé, dans mon cas, l'emplacement était "C: \ Users \ user \ AppData \ Roaming \ npm \ node_modules \ bower"

Depuis le répertoire, j'ai exécuté bower, et tout fonctionne bien, même à partir d'un autre répertoire

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.