Команда Gulp не найдена после установки


97

Я установил gulp (глобально), и похоже, что он работал, потому что он запускал этот код:

├── tildify@0.2.0
├── interpret@0.3.5
├── pretty-hrtime@0.2.1
├── deprecated@0.0.1
├── archy@0.0.2
├── minimist@0.2.0
├── semver@2.3.2
├── orchestrator@0.3.7 (stream-consume@0.1.0, sequencify@0.0.7, end-of-stream@0.1.5)
├── chalk@0.5.1 (escape-string-regexp@1.0.1, ansi-styles@1.1.0, supports-color@0.2.0, strip-ansi@0.3.0, has-ansi@0.1.0)
├── gulp-util@2.2.20 (lodash._reinterpolate@2.4.1, dateformat@1.0.8-1.2.3, vinyl@0.2.3, through2@0.5.1, multipipe@0.1.1, lodash.template@2.4.1)
├── liftoff@0.12.0 (extend@1.2.1, minimist@0.1.0, resolve@0.7.4, findup-sync@0.1.3)
└── vinyl-fs@0.3.5 (graceful-fs@3.0.2, lodash@2.4.1, mkdirp@0.5.0, strip-bom@0.3.1, vinyl@0.2.3, through2@0.5.1, glob-watcher@0.0.6, glob-stream@3.1.14)

Но когда я печатаю, gulpон говорит-bash: gulp: command not found

Есть идеи, что происходит?


4
Я решил это решить sudo install gulp -g. это сработало
Mr_Green

10
Mr_Green означал: sudo npm install
gulp

Ответы:


174

Оказалось, что npm был установлен не в тот каталог, поэтому мне пришлось изменить «префикс конфигурации npm», запустив этот код:

npm config set prefix /usr/local

Затем я переустановил gulp глобально (с параметром -g), и он работал правильно.

В этой статье я нашел решение: http://webbb.be/blog/command-not-found-node-npm


2
Спасибо! Решил и мою проблему :)
rebellion

2
Удивительный. Спасибо.
Эндрю

2
Также мне помогло решение
Сергей Андреев

2
Спасибо, это сработало. Так странно. Я установил его на macbook 1, он работает, macbook 2 не работает, поэтому мне нужно это сделать. Псих.
axelvnk

2
Интересно, почему StackOverflow не показывает это как первый ответ! Ясно, что это правильный.
Anand Sainath

59

Не уверен, почему вопрос был отклонен, но у меня была такая же проблема, и после публикации в блоге я рекомендовал решить проблему. Я должен добавить, что в моем случае после запуска:

npm config set prefix /usr/local

Я подтвердил , что npm root -gуказывал /usr/local/lib/node_modules/npm, но для того , чтобы установить gulpв /usr/local/lib/node_modules, я должен был использовать sudo:

sudo npm install gulp -g


Я искал это решение! СПАСИБО! Команда: npm config set prefix /usr/localПроблема РЕШЕНА!
north.inhale 03

21

Если вы используете tcsh(это моя оболочка по умолчанию в Mac OS X), вам, вероятно, просто нужно ввести rehashоболочку сразу после завершения установки:

npm install -g gulp

сразу после этого:

rehash

В противном случае, если это ваша самая первая установка gulp, ваша оболочка может не распознать, что установлен новый исполняемый файл, поэтому вам нужно либо запустить новую оболочку, либо ввестиrehash текущую оболочку.

(Это в основном одноразовая вещь для каждой команды, которую вы устанавливаете глобально.)


17

Я понимаю, что это старая ветка, но для Future-Me и потомков я решил, что должен добавить свои два цента вокруг обсуждения «запуск npm как sudo». Отказ от ответственности: я не использую Windows. Эти шаги были проверены только на машинах без Windows, как виртуальных, так и физических.

Вы можете избежать необходимости использовать sudo, изменив разрешение на каталог npm по умолчанию.


Как: изменить разрешения для запуска npm без sudo

Шаг 1. Узнайте, где находится каталог npm по умолчанию.

  • Для этого откройте свой терминал и запустите:
    npm config get prefix

Шаг 2: Продолжайте, основываясь на выводе этой команды:

  • Сценарий первый: каталог npm по умолчанию - /usr/local
    Для большинства пользователей ваш вывод покажет, что каталог npm по умолчанию - / usr / local, и в этом случае вы можете перейти к шагу 4, чтобы обновить разрешения для каталога.
  • Сценарий второй: каталог npm по умолчанию - /usrили /Users/YOURUSERNAME/node_modulesили /Something/Else/FishyLooking
    Если вы обнаружите, что каталог по умолчанию npm не / usr / local, а вместо этого что-то, что вы не можете объяснить или выглядит подозрительно, вам следует перейти к шагу 3, чтобы изменить каталог по умолчанию для npm, или вы рискуете испортить свои разрешения в гораздо большем масштабе.

Шаг 3: Измените каталог npm по умолчанию:

  • Есть несколько способов сделать это, в том числе создать каталог специально для глобальных установок, а затем добавить этот каталог в ваш $ PATH, но поскольку / usr / local, вероятно, уже находится на вашем пути, я думаю, что проще просто изменить npm каталог по умолчанию для этого. Вот так: npm config set prefix /usr/local
    • Для получения дополнительной информации о других подходах, которые я упомянул, см. Документацию npm здесь .

Шаг 4: Обновите разрешения для каталога npm по умолчанию:

  • Убедившись, что каталог npm по умолчанию находится в разумном месте, вы можете обновить разрешения для него с помощью команды:
    sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}

Теперь вы можете бегать npm <whatever>без него sudo. Примечание: вам может потребоваться перезагрузить терминал, чтобы эти изменения вступили в силу.


7

У меня была аналогичная проблема, я сделал следующие шаги, и это сработало. Зайдите в терминал Mac и выполните команды,

1. npm config устанавливает префикс / usr / local

2. sudo chown -R $ (whoami) $ (конфигурация npm получает префикс) / {lib / node_modules, bin, share}

Эти две команды установят правильный путь npm, и вам больше не нужно использовать sudo в npm. Затем удалите глоток

  1. npm удалить глоток

  2. Снова установите gulp без sudo, npm install gulp -g

Это должно сработать !!


4

У меня была проблема с получением сообщения «команда не найдена» после установки, но я был установлен в / usr / local, как описано в решении выше.

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

  1. Удаление gulp снова с помощью sudo
  2. Смена владельца / usr / local / lib / node_modules на моего пользователя
  3. Повторная установка gulp без sudo. "npm install gulp -g"

1
Кажется более разумным, что мне не нужно ничего устанавливать локально с помощью sudo, и зачем мне когда-либо нужно использовать sudo - для меня, когда я начинаю использовать sudo, все ломается, когда вы не запускаете командную строку как sudo - как в повседневный разработчик под пользователем. Я склонен думать, что ваш путь намного более правильный - sudo не всегда является лучшим ответом, хотя на данный момент он, кажется, исправляет.
приземлился

3

Вам нужно это сделать npm install --global gulp. Это работает для меня, и у меня тоже была эта проблема. Это потому, что вы не установили этот пакет глобально.


3

Если у вас Mac, используйте root-права

sudo npm install gulp-cli --global

Чтобы проверить, установлен ли он, запустите

gulp -v

Версия CLI: 2.2.0 (Вывод)

Локальная версия: неизвестно


1

Я получил это, работая над Win10, используя комбинацию ответов сверху и из других источников. Публикация здесь для других и будущего меня.

Я выполнил инструкции отсюда: https://gulpjs.com/docs/en/getting-started/quick-start но на последнем шаге после ввода gulp --version я получил сообщение -bash: gulp: command not found

Чтобы исправить это:

  1. Я добавил% AppData% \ npm в свою переменную среды Path
  2. Закрыл все gitbash (cmd, powershell и т. Д.) И перезапустил gitbash.
  3. Затем gulp --version работал

Кроме того, ниже приведены причины, по которым не следует устанавливать gulp глобально и как его удалить (хотя не уверен, целесообразно ли это):

что означает gulp- "cli"?

Как удалить Gulp CLI из NPM глобально?


0

В моем случае добавление sudo перед установкой npm решено, команда gulp не найдена проблема

sudo npm install


0

Если вы хотите оставить свой префикс нетронутым, просто экспортируйте его bin dir в свою переменную PATH:
export PATH=$HOME/your-path/bin:$PATH
я добавил эту строку в свой $ HOME / .profile и получил ее.

Установка префикса на /usr/localзаставляет вас использовать sudo, поэтому мне нравится, чтобы он был в моем пользовательском каталоге. Вы можете проверить свой префикс с помощью npm prefix -g.

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