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

Я создал модуль (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.

Я что-то пропустил?


person Benny Neugebauer    schedule 29.06.2016    source источник
comment
Возможный дубликат В чем разница между зависимостями, devDependencies и peerDependencies в пакете npm. json-файл?   -  person Sven Schoenung    schedule 29.06.2016
comment
Выполните npm i gulp -D в папке проекта. Примечание: gulp4 может вызвать проблемы в старых проектах, для установки конкретной версии используйте следующее: npm i [email protected] -D (ps -D для devDependencies)   -  person Guilherme Nascimento    schedule 27.03.2019


Ответы (6)


Попробуйте запустить npm link gulp в каталоге вашего приложения (чтобы создать локальную ссылку на глобально установленный модуль Gulp).

person Fab Fuerste    schedule 10.10.2016
comment
Пользователь Laravel / homestead здесь. Приведенная выше команда у меня не сработала, однако npm link gulp --no-bin-links сработала. - person Lpgfmk; 14.09.2017
comment
Чтобы уточнить, npm link [module] создает символическую ссылку из глобальной папки установки [модуля] на ./node_modules/[module] по текущему пути (npm link без ссылок на имена пакетов, см. справочная страница) - person techturbulence; 11.10.2017

Попробуйте сначала установить свои зависимости:

npm install

Если все еще не работает, установите gulp глобально:

npm install -g gulp

если вы обнаружите проблемы с его установкой. введите sudo перед npm.

Если вам нужна дополнительная информация о том, почему вам нужен gulp глобально и локально, прочитайте этот ответ

person Sebastian SALAMANCA    schedule 29.06.2016
comment
Gulp установлен глобально: [17:51:24] CLI version 1.2.1 - person Benny Neugebauer; 29.06.2016
comment
На самом деле не в приложении, использующем мой модуль. Но я думал, что он возьмет gulp из пути моего модуля или моего глобально установленного gulp. - person Benny Neugebauer; 29.06.2016
comment
Кажется, он ищет локальный глоток внутри вашего проекта. Как насчет того, чтобы установить его локально внутри вашего проекта? - person Sebastian SALAMANCA; 29.06.2016

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

person Kapil Bhagchandani    schedule 23.07.2017
comment
Я сделал ту же ошибку. Я был на одну директорию выше, чем должен был быть. Это может легко произойти, если вы на полной скорости настраиваете что-то вроде среды Express Generator, где у вас есть несколько дополнительных приложений в корневом расположении. Мне просто нужно было замедлиться. - person klewis; 09.06.2021

npm link gulp --no-bin-links
Запустить это

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

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

Используйте его для любой файловой системы, которая не поддерживает символические ссылки.

Символические ссылки или символические ссылки — это «виртуальные» файлы или папки, которые ссылаются на физический файл или папку, расположенную в другом месте, и являются важной функцией, встроенной во многие операционные системы, включая Linux и Windows.

person Parikshit Singh    schedule 21.06.2020
comment
Привет! Хотя этот код может решить проблему, включая объяснение того, как и почему это решает проблему, действительно поможет улучшить качество. вашего сообщения и, вероятно, приведет к большему количеству голосов. Помните, что вы отвечаете на вопрос для будущих читателей, а не только для того, кто задает сейчас. Пожалуйста, отредактируйте свой ответ, чтобы добавить пояснения и указать, какие ограничения и предположения применяются. - person Brian; 22.06.2020
comment
Спасибо @Brain за указание :). Я отредактировал его. - person Parikshit Singh; 22.06.2020

npm link gulp --force

Использование этой команды хорошо сработало для меня.

person Agostinho de Pina Ramos    schedule 04.09.2020

Поместите Gulp в обычные зависимости проекта:

npm i gulp

А затем пусть ваш раздел сценариев ссылается на локальный Gulp следующим образом:

  "scripts": {
    "postinstall": "./node_modules/.bin/gulp build",
    "test": "./node_modules/.bin/gulp test"
  }
person leymannx    schedule 31.03.2021