Локальної установки gulp не знайдено навіть після встановлення npm install -g gulp


88

Я спробував встановити gulp

npm install -g gulp

Результат здається приблизно таким. (я пропустив деякі журнали)

npm http 304 https://registry.npmjs.org/string_decoder
npm http 304 https://registry.npmjs.org/lodash._htmlescapes
/usr/bin/gulp -> /usr/lib/node_modules/gulp/bin/gulp.js
gulp@3.6.2 /usr/lib/node_modules/gulp
├── tildify@0.2.0
├── pretty-hrtime@0.2.1
├── deprecated@0.0.1
├── archy@0.0.2
├── semver@2.2.1
├── chalk@0.4.0 (has-color@0.1.7, ansi-styles@1.0.0, strip-ansi@0.1.1)
├── orchestrator@0.3.3 (sequencify@0.0.7)
├── liftoff@0.9.8 (extend@1.2.1, minimist@0.0.8, resolve@0.6.3, findup-sync@0.1.3)
├── vinyl-fs@0.1.4 (graceful-fs@2.0.3, map-stream@0.1.0, mkdirp@0.3.5, vinyl@0.2.3, glob-stream@3.1.9, glob-watcher@0.0.6)
└── gulp-util@2.2.14 (lodash._reinterpolate@2.4.1, dateformat@1.0.7-1.2.3, minimist@0.0.8, vinyl@0.2.3, multipipe@0.0.2, through2@0.4.1, lodash.template@2.4.1)

У наведеному вище сценарії я бачу рядок / usr / bin / gulp -> /usr/lib/node_modules/gulp/bin/gulp.js, який, на мою думку, робить симулятор у папці bin. Отже, я повинен отримувати глоток у всьому світі, але я отримую цю помилку.

No local gulp install found in /var/www/ksapp

Будь-яка ідея, чому я отримую цю помилку.

Дякую

Відповіді:


103

Як зазначено в документі , вам слід встановити його глобально (ви це зробили) і додати до відділів розробників проекту (локально):

npm install gulp --save-dev

1
Чи існує можливість для Gulp не копіювати файли вузлів у локальну папку проекту? Встановивши Gulp глобально, ця команда робить її локальну копію, наскільки я розумію.
Владислав Раструсний

Справа в тому, що локальна установка гарантує, що збірка вашого проекту НЕ порушиться, навіть якщо встановлення вашої системи буде оновлено (глобальна установка gulp саме для забезпечення двійкової команди на шляху). Це та сама ситуація для бурчання.
Викривлений Deutz

12
Я теж ненавиджу повні копії вузлових модулів у кожній папці проекту, тому регулярно використовуюnpm link gulp --save-dev
PA.

1
Приємно, але я не бачу, що npm link gulp --save-devповажає --save-devпараметр.
Дерек Грір,

2
@PA, ще раз повторювати коментарі щодо інших відповідей, npm link gulpє поганою ідеєю.
sfarbota

35

Я зіткнувся з тим же питанням. Вирішив це, створивши посилання

npm link gulp

8
Як зазначено в іншому коментарі, це погана ідея. Системи побудови, такі як gulp або grunt, розроблені таким чином, що конкретний проект може залежати від конкретної версії конкретної збірки (таким чином, все одно буде створюватися незалежно від стану або встановлених версій вашої глобальної системи). Спроба пов’язати глобальну та локальну версії ковтка - це стріляти собі в ногу ...
Спотворений Дойт

@MangledDeutz Мені не цікаво прив'язувати ковток до цього конкретного проекту. Я просто хочу використовувати його як невеликий інструмент командного рядка для автоматизації деяких завдань збірки. Мій файл gulp не буде частиною репозиторію git, і насправді, якщо я клоную це репо на іншому комп'ютері, я можу вирішити навіть не використовувати gulp для автоматизації цих завдань, я можу використовувати інший інструмент. Я хочу зробити вигляд, що вузол і npm не існують, а gulp - це лише невелика програма в / usr / bin, яка шукає gulpfile.js у CWD і магічно працює. Якщо це все, що я хочу, хіба ця відповідь не є розумною дією?
Jack M

@JackM це все ще не розумна річ, тому що залежно від того, яку версію gulp встановлено загальносистемно, він може працювати, а може і не працювати з цим gulpfile.js (і "магічно" ламається без причини) ...
Спотворений Deutz

@MangledDeutz Але це вірно для будь-якої програми командного рядка, яка приймає файл як вхід.
Jack M

Яаас! ЦЕ! Нехай розробник вирішить, коли глобальна версія підходить чи ні !!
Пітер Конга-Камау

-2

Перевірте каталог /home/username/.npm: можливо, групи / власник файлів є root. Змінити на ім’я користувача:

chown -R username.username /home/username/.npm

-2

Нещодавно я зіткнувся з повідомленням про помилку "Локальну глотку не знайдено". Я зміг подолати це, створивши символічне посилання з глобального каталогу node_modules на локальний каталог проекту, де знаходиться моя gulpfile.js.


7
Потім ви перемагаєте призначення локально доступної системи складання, яка НЕ ​​зламається під час оновлення базової системи. Це, безумовно, погана ідея і суперечить намірам авторів ...
Mangled Deutz
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.