команда 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: Якщо встановлювати bower в глобальному масштабі, ця відповідь не вирішує проблему. Однак використання локальних пакетів вузлів може бути кращим способом вирішення конкретних інструментів проекту.
Петро Йоахім

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

Ми не рекомендуємо використовувати Bower для нових проектів. Зверніть увагу на пряжу та веб-пакет або посилку.
Даніель

60

Я майже впевнений, що ви насправді не встановите його правильно. Оскільки ви намагаєтесь встановити його в усьому світі, вам потрібно буде запустити його з sudo:

sudo npm install -g bower

3
Ось як потрібно встановити bower, інакше він буде просто встановлений у папці, де ви виконали команду. -g означає глобальний, і він також створює необхідні посилання для модулів, які можна виконати як системні команди, bower, grunt-cli, навіть npm - це чіткі приклади цього.
Ерік Руїс де Чавес

Не встановлюйте з судо! Просто використовуйте лікар-заварювач і робіть виправлення, які пропонує лікар-заварювач, і тоді вам не потрібно використовувати судо!
djangofan

4

Це виявилося НЕ проблемою з цибулею, хоча вона виявилася для мене з прихильником.

Здається, це проблема, яка є вузлом. Якщо файл знаходиться в шляху, але встановлений біт setuid / setgid встановлений, він не знайде його.

Ось файли з набором s біт: (unix 'котрий' знайде його без проблем).

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.
chovy
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.