команда bower не найдена


158

Я попытался установить Twitter Bower на моем Mac, и я использовал

npm install bower -g

Тогда я попытался bower --help, и выход был bower command not found. Это почему?


2
Из чего вывод npm install? Это не удалось? Это установило беседку в какое-то место не на вашем PATH?
jches


Ответы:


365

Как и в этом вопросе ( префикс глобального пути npm ), все, что вам нужно, это правильно установить npm prefix.

UNIX:

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

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

Windows и NVM:

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

Тогда bowerдолжен располагаться как раз в вашем $PATH.


1
Я хотел бы добавить, что это не самый правильный ответ, если вы работаете с несколькими проектами. Бауэр должен быть установлен node_modulesлокально, package.jsonа не глобально, поскольку разные проекты могут использовать разные версии (в этом весь смысл npm). Реальная проблема заключается в том, что система не может найти исполняемый файл локального сервера.
Бруно Фингер

@BrunoFinger: при установке бауэра в глобальном масштабе этот ответ не решает проблему. Однако использование пакетов локальных узлов может быть лучшим способом работы с инструментами, специфичными для проекта.
Петр Иоахим

Я думаю, что если префикс npm установлен в / usr / local, npm install -g не будет работать без sudo.
Imafish

Мы не рекомендуем использовать Bower для новых проектов. Пожалуйста, рассмотрите пряжу и Webpack или посылку.
Даниил

60

Я почти уверен, что вы на самом деле не устанавливаете его правильно. Поскольку вы пытаетесь установить его глобально, вам нужно запустить его с помощью sudo:

sudo npm install -g bower

3
Вот как должен быть установлен bower, иначе он будет просто установлен в папку, где вы выполнили команду. -g означает глобальный, а также создает необходимые ссылки для модулей, которые могут быть выполнены как системные команды, bower, grunt-cli, даже npm являются яркими примерами этого.
Эрик Руис де Чавес,

Не устанавливайте с sudo! Просто используйте Brew Doctor и сделайте исправления, которые предлагает Brew Doctor, и тогда вам не нужно будет использовать sudo!
Джангофан

4

Оказалось, что это НЕ проблема с беседкой, хотя для меня это оказалось с беседкой.

Кажется, это узел, какая проблема. Если файл находится в пути, но установлен бит setuid / setgid, который не найдет его.

Вот файлы с установленным битом s: (unix 'which' найдет его без проблем).

ls -al / usr / local / bin -rwxrwsr-- 110 root nmt 5535636 17 июля 2012 г. git

Вот узел-попытка:

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

Я меняю права доступа (chomd 755 git). Теперь узел, который может его найти.

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

Надеюсь это поможет.


3

Я использую менеджер версий узлов. Я получал это сообщение об ошибке, потому что я переключился на другую версию узла. Когда я переключился обратно на версию узла, где я установил bower, эта ошибка исчезла. В моем случае команда былаnvm use stable


3

В качестве альтернативы, вы можете использовать, npxкоторый приходит с npm> 5.6.

npx bower install


1
Это должен быть принятый ответ. Вы никогда не должны устанавливать глобальные модули с npm.
Чови
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.