2016-02-21 1 views
2

Я застрял. Не знаю, почему мои команды пакета npm не читаются -bash. Они действительно устанавливаются, но, например, после установки brower я иду проверить его, набрав команду bower, и он возвращает: -bash: bower: команда не найдена, но затем я перечислим свои пакеты, и она действительно установлена. То же самое с Express, Grunt, Gulp и т. Д. Я установил узел через Homebrew. Пожалуйста помоги!Почему не работают мои команды пакета npm?

+0

перезапустить терминал. – migg

+0

Как? Если вы имеете в виду выход и вернуться, то я, естественно, не знаю, как это исправить? – VickenCode

+0

Возможный дубликат [BrowserSync: команда не найдена после установки браузера-синхронизации] (http://stackoverflow.com/questions/35500178/browsersync-command-not-found-after-installing-browser-sync) – bolav

ответ

2

Запустите эту команду npm bin -g, и посмотрите, если она говорит (not in PATH env variable). Если это так, вам нужно исправить свой путь. Если это так, пробег:

export PATH=$PATH:`npm bin -g` 

Если это фиксирует его, поставить эту строку в вашем .bash_profile, (но заменить кавычку с фактическим результатом npm bin -g).

+0

Вы можете использовать ' export PATH = $ (npm bin -g): $ PATH', поэтому вам не нужно копировать вставку. Кроме того, лучше разместить это в '~/.profile'. Следующая команда сделает для вас все это: экспорт echo 'PATH = $ (npm bin -g): $ PATH' >> ~/.profile'. Не забудьте перезапустить или выйти из системы и войти в систему. – totymedli

2

Без дополнительной информации трудно точно знать, в чем проблема. Но есть несколько возможных причин.

Во-первых, если вы хотите использовать CLI для пакета непосредственно из командной строки, вам необходимо убедиться, что он установлен глобально. Например:

npm install -g bower 

Тогда вы должны быть в состоянии запустить скрипт так:

bower install --save jquery 

Если это не сработает, то это может быть, что исполняемые скрипты не в вашем PATH. Это может быть либо потому, что Node по какой-то причине не устанавливает их в местоположение по умолчанию, или потому, что местоположение по умолчанию не находится в вашем PATH. Чтобы проверить местоположение, в котором узел устанавливает свои глобальные сценарии, сделайте следующее:

npm config get prefix 

Обычно, это вернет /usr/local, что означает, что ваши скрипты могут быть найдены под /usr/local/bin. Для того, чтобы проверить, что место находится в вашем PATH, выполните следующую команду:

echo $PATH 

Теперь вы должны увидеть /usr/local/bin где-то в $ PATH, или если ваш префикс было что-то еще, это будет {prefix}/bin. Если вы этого не видите, вам нужно добавить этот каталог в свой путь.

Еще одна распространенная проблема, с которой люди сталкиваются с разрешениями в местоположении по умолчанию. Это кажется маловероятным, поскольку вы упоминаете, что скрипты устанавливаются, но this link имеет больше информации на всякий случай.

+0

Большое спасибо, это было очень полезно! Однако я использовал аналогичный подход: 1. запустите команду редактирования npm config edit 2. просмотрите файл и удалите строку с надписью «prefix = ~/.npm-packages» Я удалил префикс sudo – VickenCode