проблема версии gulp 4 приводит к сбою всех задач - PullRequest
0 голосов
/ 24 января 2019

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

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

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 at 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. закройте все и перезагрузите компьютер, надеясь на волшебное исправление, не повезло ?

EDIT:

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

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

что работает

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

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

тогда my-task будет работать и работать правильно

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

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

gulp my-task

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

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

1 Ответ

0 голосов
/ 21 марта 2019

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

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

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

...