nie znaleziono polecenia bower

158

Próbowałem zainstalować twitter bower na moim Macu i użyłem

npm install bower -g

Potem spróbowałem bower --helpi wynik był bower command not found. Dlaczego?

Amo Wu
źródło
2
Jaki jest wynik npm install? Czy to się nie udało? Czy zainstalował altanę w jakimś miejscu poza twoim PATH?
jches
możliwy duplikat „polecenia nie znaleziono” po instalacji
Sindre Sorhus,

Odpowiedzi:

365

Podobnie jak w tym pytaniu ( prefiks ścieżki globalnej npm ) wszystko czego potrzebujesz to ustawić poprawne npm prefix.

UNIX:

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

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

Windows i NVM:

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

Następnie bowerpowinien znajdować się tylko w twoim $PATH.

Petr Joachim
źródło
1
Chciałbym dodać, że nie jest to najlepsza odpowiedź, jeśli pracujesz z wieloma projektami. Bower powinien być instalowany node_moduleslokalnie, package.jsona nie globalnie, ponieważ różne projekty mogą używać różnych wersji (o to chodzi npm). Prawdziwym problemem jest to, że system nie jest w stanie znaleźć lokalnego pliku wykonywalnego altany.
Bruno Finger
@BrunoFinger: Podczas instalowania altany na skalę globalną ta odpowiedź nie rozwiązuje problemu. Jednak użycie pakietów węzłów lokalnych może być lepszym sposobem radzenia sobie z narzędziami specyficznymi dla projektu.
Petr Joachim,
Myślę, że jeśli prefiks npm jest ustawiony na / usr / local, instalacja npm -g zakończy się niepowodzeniem bez sudo.
imafish
Nie zalecamy używania Bower do nowych projektów. Proszę rozważyć przędzę i Webpack lub paczkę.
Daniel
60

Jestem prawie pewien, że tak naprawdę nie instalujesz go poprawnie. Ponieważ próbujesz zainstalować go globalnie, będziesz musiał uruchomić go za pomocą sudo:

sudo npm install -g bower
Erick Ruiz de Chavez
źródło
3
W ten sposób należy zainstalować bower, w przeciwnym razie zostanie on zainstalowany w folderze, w którym wykonałeś polecenie. -g oznacza globalny i tworzy również wymagane łącza do modułów, które mogą być wykonywane jako polecenia systemowe, bower, grunt-cli, a nawet npm są tego wyraźnymi przykładami.
Erick Ruiz de Chavez
Nie instaluj za pomocą sudo! Po prostu użyj brew doctor i wprowadź poprawki sugerowane przez brew doctora, a wtedy nie będziesz musiał używać sudo!
djangofan
4

Okazało się, że NIE jest to problem z altaną, chociaż pojawił się u mnie z altaną.

Wydaje się, że problem dotyczy węzła, który. Jeśli plik znajduje się w ścieżce, ale ma ustawiony bit setuid / setgid, oznacza to, że go nie znajdzie.

Oto pliki z ustawionym bitem s: (unix 'który' odnajdzie go bez problemów).

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

Oto próba węzła:

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

Zmieniam uprawnienia (chomd 755 git). Teraz węzeł, który może go znaleźć.

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

Mam nadzieję że to pomoże.

user3112929
źródło
3

Używam menedżera wersji węzła. Otrzymałem ten komunikat o błędzie, ponieważ przełączyłem się na inną wersję węzła. Kiedy wróciłem do wersji węzła, w którym zainstalowałem bower, ten błąd zniknął. W moim przypadku polecenie byłonvm use stable

pszczoła
źródło
3

Alternatywnie możesz użyć tego, npxktóry pojawia się wraz z npm> 5,6.

npx bower install

Kuldeep Saxena
źródło
1
To powinna być akceptowana odpowiedź. Nie powinieneś nigdy instalować modułów globalnych za pomocą npm.
chovy