Локальну глотку не знайдено (спробуйте запустити: npm install gulp)


84

Я створив модуль ( webapp-module-storage), який має такі визначення:

package.json

{
  "dependencies": {
    ...
  },
  "devDependencies": {
    "gulp": "^3.9.1",
    ...
  },
  "name": "webapp-module-storage",
  "scripts": {
    "postinstall": "gulp build",
    "test": "gulp test"
  }
}

Я думав, що можу використовувати свій модуль всередині іншого модуля, встановлюючи його разом з:

  • npm install github:myorg/webapp-module-storage#master

Однак, коли я встановлюю свій модуль, я отримую таку помилку:

Місцева глотка не знайдена

Спробуйте запустити: npm install gulp

Знімок екрана

введіть тут опис зображення

Я розумію, що gulpце поставляється разом з моїм модулем, тому що я заявив його в, devDependenciesале схоже, що мій npm postinstallскрипт не може знайти gulp.

Мені чогось не вистачає?



1
Виконати npm i gulp -Dв проекті папки. Примітка: gulp4 може спричинити проблеми у старих проектах, для встановлення конкретної версії використовуйте ось такий: npm i gulp@3.9.1 -D(ps -Dдля devDependencies)
Guilherme Nascimento

Відповіді:


182

Спробуйте запустити npm link gulpу своєму каталозі програми (щоб створити локальне посилання на глобально встановлений модуль Gulp).


Користувач Laravel / садиби тут. Наведена команда не працювала для мене, проте npm link gulp --no-bin-linksпрацювала.
Lpgfmk

7
Для уточнення npm link [module]створює символічне посилання із глобальної папки встановлення [module] на ./node_modules/ [module] за поточним шляхом ( npm linkбез імен пакетів посилань, див. Сторінку
довідки

22

Спробуйте спочатку встановити свої залежності:

npm install

Якщо все ще не працює, встановіть gulp глобально:

npm install -g gulp

якщо ви виявите проблеми з його встановленням. введіть sudo перед npm .

Якщо вам потрібна додаткова інформація про те, чому вам потрібно ковтати глобально та локально, прочитайте цю відповідь


1
Gulp встановлюється в усьому світі:[17:51:24] CLI version 1.2.1
Бенні Нойгебауер,

Насправді не в додатку, що використовує мій модуль. Але я думав, що це зачепить gulpшлях мого модуля або моєї глобально встановленої глотки.
Бенні Нойгебауер,

1
Здається, це пошук локальної глотки у вашому проекті. Як щодо встановлення його локально, всередині вашого проекту?
Себастьян САЛАМАНКА

13

Я спробував усі згадані рішення. Врешті-решт я зміг вирішити проблему, зрозумівши, що файл gulpfile.js відсутній у місці, де я використовував gulp. Після розміщення gulpfile.js в папці, звідки я виконував gulp, він спрацював для мене.


0

npm link gulp --no-bin-links
Запусти це

де npm link gulpстворює локальне посилання на глобально встановлений модуль gulp, а --no-bin-linksаргумент заважає npm створювати символічні посилання для будь-яких двійкових файлів, які може містити пакет.

Ви не можете перекласти символічні посилання в синхронізовану папку на спільному ресурсі Windows, тому вам знадобиться '--no-bin-links', щоб обійти його.

Використовуйте його для будь-якої файлової системи, яка не підтримує символічні посилання.

Символьні посилання або символічні посилання - це «віртуальні» файли або папки, що посилаються на фізичний файл або папку, розташовані в інших місцях, і є важливою функцією, вбудованою в багато операційних систем, включаючи Linux та Windows.


Привіт! Хоча цей код може вирішити питання, включаючи пояснення того, як і чому це вирішує проблему, справді допомогло б поліпшити якість вашої публікації, і, можливо, призведе до збільшення кількості голосів. Пам’ятайте, що ви відповідаєте на запитання читачам у майбутньому, а не лише тому, хто задає зараз. Будь ласка, відредагуйте свою відповідь, щоб додати пояснення та вказати, які обмеження та припущення застосовуються.
Брайан

Дякую @Brain за вказівку :). Я його відредагував.
Parikshit Singh

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