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

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

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

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 (internal / modules / cjs / loader.js: 745: 11) при запуске (internal / bootstrap / node.js: 283: 19) в bootstrapNodeJSCore (internal / bootstrap / node.js: 743: 3)

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

  1. очистите node_module и установите с помощью rm -rf node_modules и npm i
    • uninstall gulp and gulp-cli from both the global and local packages
    • после чего я только установил gulp-cli глобально и gulp v4 локально в dev
  2. закройте все и перезагрузите компьютер в надежде на волшебное решение, не повезло ????

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

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

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

что работает

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

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

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

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

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

gulp my-task

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

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


person J King    schedule 24.01.2019    source источник
comment
gulp-cli - это какой-то модуль npm, который позволяет запускать команды командной строки gulp из Node? Я думаю, вам нужно установить gulp глобально. Вы говорите, что установили gulp-cli только глобально, что не кажется актуальным, если я понимаю вашу проблему. попробуйте npm install -g gulp и сделайте это снова   -  person pushkin    schedule 24.01.2019
comment
о, не думаю, что я неправильно понял. похоже, что gulp поставляется с gulp-cli (это зависимость), и в конечном итоге это то, что используется при запуске из командной строки. Может быть, мое предложение не сработает, хотя я видел, как оно работает раньше по этой проблеме.   -  person pushkin    schedule 24.01.2019
comment
@pushkin глобальное добавление gulp не решило проблему, спасибо   -  person J King    schedule 24.01.2019
comment
возможно, вы все здесь пробовали, но здесь   -  person pushkin    schedule 25.01.2019


Ответы (1)


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

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

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

person Eric Woodward    schedule 21.03.2019