Локальный глоток не найден (Попробуйте запустить: 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.

npm link gulp --force

Эта команда мне понравилась.

Я использовал код 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"
  }
Другие вопросы по тегам