Локальный глоток не найден (Попробуйте запустить: 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 установить gulp
Скриншот
Я понимаю, что gulp
поставляется вместе с моим модулем, потому что я объявил об этом в devDependencies
но похоже, что мой npm postinstall
скрипт не может найти gulp
,
Я что-то пропустил?
7 ответов
Попробуйте запустить npm link gulp
в каталоге вашего приложения (чтобы создать локальную ссылку на глобально установленный модуль Gulp).
Попробуйте сначала установить ваши зависимости:
npm install
Если все еще не работает, установите gulp глобально:
npm install -g gulp
если вы обнаружите проблемы с установкой. наберите sudo перед npm.
Если вам нужна дополнительная информация о том, почему вам нужно глотать глобально и локально, прочитайте этот ответ
Я перепробовал все упомянутые решения. В конце концов я смог решить проблему, поняв, что файл gulpfile.js отсутствует в том месте, где я использовал gulp. Поместив файл gulpfile.js в папку, из которой я выполнял gulp, у меня все заработало.
npm link gulp --no-bin-links
Запустить это
где npm link gulp
создает локальную ссылку на глобально установленный модуль gulp и --no-bin-links
Аргумент не позволит npm создавать символические ссылки для любых двоичных файлов, которые может содержать пакет.
Вы не можете перевести символические ссылки в синхронизированную папку в общей папке Windows, поэтому вам понадобится "--no-bin-links", чтобы обойти ее.
Используйте его для любой файловой системы, не поддерживающей символические ссылки.
Symlinks или символические ссылки, являются € œvirtualâ € файлы или папки, которые ссылаются на физический файл или папку, расположенную в другом месте, и являются важной особенностью, встроенный в многих операционных систем, включая Linux и Windows.
Я использовал код Visual Studio и терминал с Power Shell, и у меня тоже возникла эта проблема. Эта проблема для меня исчезла, когда я изменил Execution Policy. Я получаю информацию об этом решении от gulp . Пример изменения Execution Policy на картинке.
Поместите Gulp в обычные зависимости проекта:
npm i gulp
А затем сделайте так, чтобы ваш раздел сценариев ссылался на локальный Gulp следующим образом:
"scripts": {
"postinstall": "./node_modules/.bin/gulp build",
"test": "./node_modules/.bin/gulp test"
}