2012-09-11 22 views
133

Ich versuchte twitter Bower auf meinem Mac zu installieren, und ichBower Befehl nicht gefunden

npm install bower -g 

Dann habe ich versucht bower --help, und der Ausgang war bower command not found. Warum das?

+2

Was ist die Ausgabe von 'npm installieren'? Hat es versagt? Haben Sie Bower an einem Ort installiert, der nicht auf Ihrem "PATH" steht? – chesles

+0

mögliche Duplikate von ["Befehl nicht gefunden" nach der Installation] (http://stackoverflow.com/questions/15846076/command-not-found-after-installation) –

Antwort

317

Genau wie in dieser Frage (npm global path prefix) alles, was Sie brauchen richtige einstellen npm prefix ist.

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

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

Dann bower sollte nur in Ihrem $PATH befinden.

+0

Ich möchte hinzufügen, dass dies nicht die richtige Antwort ist, wenn Sie mit mehreren Projekten arbeiten. Bower sollte in 'node_modules' lokal von' package.json' und nicht global installiert werden, da verschiedene Projekte unterschiedliche Versionen verwenden können (das ist der ganze Sinn von 'npm'). Das eigentliche Problem ist, dass das System die ausführbare lokale Bower-Datei nicht finden kann. –

+0

@BrunoFinger: Wenn Sie Bower im globalen Bereich installieren, löst diese Antwort das Problem nicht.Die Verwendung von lokalen Knotenpaketen ist jedoch möglicherweise eine bessere Möglichkeit, mit projektspezifischen Tools umzugehen. –

51

Ich bin mir fast sicher, dass Sie es tatsächlich nicht richtig installieren. Da Sie es versuchen, global zu installieren, müssen Sie es mit sudo auszuführen:

sudo npm install -g bower

+0

Mine hat nicht funktioniert, bis ich hinzugefügt -g – AliBZ

+3

Das ist wie Bower installiert werden muss, andernfalls wird es nur in dem Ordner installiert, in dem Sie den Befehl ausgeführt haben. -g bedeutet global und es erzeugt auch die erforderlichen Verbindungen für Module, die als Systembefehle ausgeführt werden können, bower, grunt-cli, sogar npm sind klare Beispiele dafür. –

+0

Nicht mit Sudo installieren! Verwenden Sie einfach brauen Arzt und machen Sie die Fixes, dass brauen Arzt schlägt vor und dann müssen Sie nicht Sudo verwenden! – djangofan

3

Dies stellte sich heraus, nicht ein Problem mit der Laube, obwohl es für mich mit Laube zeigte.

Es scheint ein Knoten zu sein - welches Problem. Wenn sich eine Datei im Pfad befindet, aber das Bit setuid/setgid gesetzt ist, wird es nicht gefunden.

Hier ist eine Dateien mit dem s-Bit gesetzt: (Unix 'which' wird es ohne Probleme finden).

ls -al/usr/local/bin -rwxrwsr-- 110 root NMT 5.535.636 17. Juli 2012 git

Hier ist ein Knoten, der versucht-:

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

I ändere die Berechtigungen (chomd 755 git). Jetzt Node-was kann es finden.

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

Hoffe das hilft.

1

Ich verwende Knoten Version Manager. Ich erhielt diese Fehlermeldung, weil ich zu einer anderen Knotenversion gewechselt hatte. Als ich zurück zu der Version des Knotens wechselte, auf dem ich Bower installiert hatte, ging dieser Fehler weg. In meinem Fall war der Befehl nvm use stable