Команда 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 -g
jasonleonhard

Відповіді:


174

Виявляється, що npm було встановлено в неправильній директорії, тому мені довелося змінити префікс "npm config", запустивши цей код:

npm config set prefix /usr/local

Потім я перевстановив глобус у глобальному масштабі (з -g парам), і він працював належним чином.

У цій статті я знайшов рішення: http://webbb.be/blog/command-not-found-node-npm


2
Дякую! Вирішив і мою проблему :)
заколот

2
Дивовижний. Дякую.
Андрій

2
Також рішення мені допомогло
Сергій Андрєєв,

2
Дякую, це спрацювало. Так дивно. Я встановив його на macbook 1, він працює, macbook 2, не працює, тому я повинен це зробити. Божевільний.
axelvnk

2
Цікаво, чому StackOverflow не показує це як першу відповідь! Ясно, що це правильно.
Ананд Сайнаф

58

Не впевнений, чому це питання було знято з голосу, але у мене була така ж проблема, і після публікації блогу рекомендував вирішити проблему. Одне, що я повинен додати, - це те, що в моєму випадку, як тільки я бігав:

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

21

Якщо ви використовуєте tcsh(яка є моєю оболонкою за замовчуванням у Mac OS X), вам, ймовірно, потрібно просто ввести rehashоболонку відразу після завершення встановлення:

npm install -g gulp

далі негайно:

rehash

В іншому випадку, якщо це ваш перший раз встановлення gulp, оболонка може не визнати, що там встановлено новий виконуваний файл - тому вам потрібно або запустити нову оболонку, або ввести rehashпоточну оболонку.

(Це в основному разова річ для кожної команди, яку ви встановлюєте в усьому світі.)


17

Я усвідомлюю, що це стара тема, але для Future-Me та нащадків я подумав, що слід додати свої два центи навколо дискусії про "npm as sudo". Відмова: Я не використовую 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's каталог за замовчуванням до цього. Так: 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 set префікс / usr / local

2.sudo chown -R $ (whoami) $ (npm config отримати префікс) / {lib / node_modules, bin, share}

Ці дві команди встановлять правильний шлях до npm, і вам більше не доведеться використовувати sudo в npm. Далі видаліть залп

  1. npm видалити gulp

  2. Ще раз встановіть gulp без sudo, npm встановіть gulp -g

Це має працювати !!


4

У мене виникли проблеми з отриманням "команди не знайдено" після встановлення, але я був встановлений в / usr / local, як описано в рішенні вище.

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

  1. Знову зняти глотку за допомогою судо
  2. Зміна власника / usr / local / lib / node_modules на мого користувача
  3. Знову встановлюємо глоток без судо. "npm встановити gulp -g"

1
Мені здається більш розумним, що мені не потрібно нічого локально встановлювати з 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: команда не знайдена

Щоб виправити це:

  1. Я додав% AppData% \ npm до моєї змінної середовища Path
  2. Закрили всі gitbash (cmd, powerhell тощо) та перезапустили gitbash.
  3. Тоді глоток --версія спрацювала

Нижче наведено причини, чому не встановити 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.