Laubbefehl nicht gefunden

158

Ich habe versucht, Twitter Bower auf meinem Mac zu installieren, und ich habe verwendet

npm install bower -g

Dann habe ich es versucht bower --helpund die Ausgabe war bower command not found. Warum ist das so?

Amo Wu
quelle
2
Was ist die Ausgabe von npm install? Ist es gescheitert? Hat es die Laube an einem Ort installiert, der nicht auf Ihrem liegt PATH?
Jches
Mögliches Duplikat von "Befehl nicht gefunden" nach der Installation
Sindre Sorhus

Antworten:

365

Genau wie in dieser Frage ( npm globales Pfadpräfix ) müssen Sie nur die richtigen Einstellungen vornehmen npm prefix.

UNIX:

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

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

Windows und NVM:

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

Dann bowersollte sich nur in Ihrem befinden $PATH.

Petr Joachim
quelle
1
Ich möchte hinzufügen, dass dies nicht die richtigste Antwort ist, wenn Sie mit mehreren Projekten arbeiten. Bower sollte node_moduleslokal von package.jsonund nicht global installiert werden, da verschiedene Projekte unterschiedliche Versionen verwenden können (das ist der springende Punkt npm). Das eigentliche Problem ist, dass das System die ausführbare lokale Bower-Datei nicht finden kann.
Bruno Finger
@BrunoFinger: Wenn Sie bower im globalen Bereich installieren, löst diese Antwort das Problem nicht. Die Verwendung lokaler Knotenpakete ist jedoch möglicherweise eine bessere Möglichkeit, mit projektspezifischen Tools umzugehen.
Petr Joachim
Ich denke, wenn das npm-Präfix auf / usr / local gesetzt ist, schlägt die npm-Installation -g ohne sudo fehl.
Imafish
Wir empfehlen, Bower nicht für neue Projekte zu verwenden. Bitte beachten Sie Garn und Webpack oder Paket.
Daniel
60

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

sudo npm install -g bower
Erick Ruiz de Chavez
quelle
3
So muss bower installiert werden, sonst wird es nur in dem Ordner installiert, in dem Sie den Befehl ausgeführt haben. -g bedeutet global und erstellt auch die erforderlichen Links für Module, die als Systembefehle ausgeführt werden können. bower, grunt-cli und sogar npm sind eindeutige Beispiele dafür.
Erick Ruiz de Chavez
Nicht mit sudo installieren! Verwenden Sie einfach Brew Doctor und nehmen Sie die Korrekturen vor, die Brew Doctor vorschlägt. Dann müssen Sie kein Sudo mehr verwenden!
Djangofan
4

Es stellte sich heraus, dass dies KEIN Laubenproblem war, obwohl es sich für mich mit Laube zeigte.

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

Hier ist eine Datei mit gesetztem s-Bit: (Unix 'which' findet es ohne Probleme).

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

Hier ist ein Knoten, der versucht:

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

Ich ändere die Berechtigungen (chomd 755 git). Jetzt Knoten - der es finden kann.

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

Hoffe das hilft.

user3112929
quelle
3

Ich verwende den Node Version Manager. Ich erhielt diese Fehlermeldung, weil ich zu einer anderen Version des Knotens gewechselt war. Als ich zurück zu der Version des Knotens wechselte, auf der ich bower installiert habe, ist dieser Fehler behoben. In meinem Fall war der Befehlnvm use stable

Biene
quelle
3

Alternativ können Sie auch das verwenden, npxdas mit dem npm> 5.6 geliefert wird.

npx bower install

Kuldeep Saxena
quelle
1
Dies sollte die akzeptierte Antwort sein. Sie sollten niemals globale Module mit npm installieren.
Chovy