Проблема версии gulp 4 приводит к сбою всех задач

Глоток решил, что этого достаточно, и он умер в моем проекте.

текущая версия

gulp -v
[11:26:35] CLI version 3.9.1
[11:26:35] Local version 4.0.0

если я запускаю одну из задач, которая работала вчера, я получаю следующую ошибку:

C: \ Program Files \ nodejs \ node_modules \ gulp \ bin \ gulp.js: 129 gulpInst.start.apply (gulpInst, toRun); ^

TypeError: Невозможно прочитать свойство 'apply' из неопределенного в C:\Program Files\nodejs\node_modules\gulp\bin\gulp.js:129:20 в process._tickCallback (internal/process/next_tick.js:61:11) в Function.Module.runMain (внутренний /modules/cjs/loader.js:745:11) при запуске (внутренний /bootstrap/node.js:283:19) в bootstrapNodeJSCore (внутренний /bootstrap/node.js:743:3)

теперь я видел эту ошибку повсюду и пытался многое исправить

  1. очистить node_module и установить с помощью rm -rf node_modules и npm i
    • удалить gulp и gulp-cli из глобальных и локальных пакетов
    • после чего я только установил gulp-cli глобально и gulp v4 локально в dev
  2. закрыть все и перезагрузить компьютер, надеясь на волшебное исправление, не повезло

РЕДАКТИРОВАТЬ:

также попробовал следующее безуспешно

  1. удалить package-lock.json, чтобы принудительно воссоздать
  2. установить глоток глобально

что работает

Кажется, есть некоторая проблема, когда версия cli не используется должным образом. Если я явно использую файл gulp из папки локальных узлов node_modules моих проектов, например:

node ./node_modules/gulp/bin/gulp.js my-task

тогда моя задача будет работать и работать правильно

что НЕ работает

если я использую следующую команду:

gulp my-task

Я получаю сообщение об ошибке в верхней части этого поста.

Я не уверен, куда идти дальше, у меня есть обходной путь, но я не могу понять, почему gulp умирает от меня, когда я пытаюсь использовать последнюю стабильную версию gulp и cli.

0 ответов

Я только недавно обновил с Gulp 3 до 4, и у меня была очень похожая проблема (TypeError: Cannot read property 'task' of undefined). По-видимому, это было вызвано изменением task метод, который (в версии 3) будет возвращать ссылку на gulp сам объект после определения задачи, но теперь (в версии 4) ничего не возвращает, вызывая эту ошибку, когда кто-то пытается бегло объединить задачи.

Решением для меня было воссоздать мой gulpfile, используя экспорт.

Поскольку вы не включили свой gulpfile в исходный вопрос, я не знаю, является ли это вашей проблемой или нет, но так как этот вопрос возник, когда я искал несколько советов по переходу с v3 на v4, я подумал это может быть полезно поделиться.

Другие вопросы по тегам