Gulp watch не работает

August 23, 2014

В Gulp имеется встроенная функция для отслеживания изменений в любом из файлов проекта.

Это очень удобно в работе, так как отпадает необходимость вручную запускать определенную задачу каждый раз, когда нужно зафиксировать эти изменения. В предыдущих статьях мы так и делали — запускали вручную на выполнение задачи по умолчанию или же определенную именованную задачу.

Сейчас давайте рассмотрим возможность запуска автоматического мониторинга в Gulp с помощью встроенной функции . Допустим, у нас имеются две именованные задачи, одна из которых выполняет минификацию js-файлов , а вторая — конкатенацию css-файлов :

Нам нужно сделать так, чтобы Gulp запускал их каждый раз самостоятельно, когда мы внесем изменения в любой из js-файлов или css-файлов, а затем сохраним эти изменения.

Для этого создадим еще одну именованную задачу , цель которой — отслеживание изменений в указанных файлах. Создаем все как обычно (или — почти как обычно):

Создаем задачу по имени , а внутри тела функции поместим встроенную функцию . В качестве аргументов этой функции мы передаем ей два параметра.

Первый параметр — что и где Gulp должен отслеживать; говорит о том, что необходимо отслеживать изменения всех файлов с расширением , помещенных в директории .

Второй параметр — что должен делать Gulp, если обнаружит изменения в указанном месте. В данном случае мы говорим ему, что необходимо запустить задачу по имени .

Как видим, имя задачи передается функции в виде массива; отсюда можно сделать вывод, что задач может быть не одна, а несколько — в виде последовательности.

Читайте также:  Office x86 или x64

Перейдем от слов к делу и запустим в консоли выполнение мониторинга с помощью функции . Команда для мониторинга в Gulp выглядит таким образом:

Видим, что задача по имени запустилась и вроде как закончилась ( ). Но на самом деле Gulp находиться в фоновом режиме и отслеживает изменения js-файлов.

Чтобы проверить это, отредактируем и сохраним js-файл (в моем случае это ):

Вау! Видим, что в консоли появились две строчки — это отработала задача . То есть, Gulp “увидел”, что я внес изменение в файле и мгновенно запустил задачу , чтобы зафиксировать это изменение. Мониторинг с помощью функции работает!

Давайте немного усложним задачу и добавим мониторинг в директории . При любом изменении файлов в этой папке должна запускаться задача :

Снова запустим Gulp для мониторинга изменений в проекте.

Кстати, а вы знаете, как останавливать Gulp, запущенный в фоновом режиме? Если нет, то это просто — в консоли Linux это выполняется сочетанием клавиш Ctrl+C .

Внесем и сохраним изменения в файле , размещенном в директории . Вернемся в консоль:

О! Видим, что “подхватил” изменение в файле и запустил соответствующую этому изменению задачу . Отлично — все работает!

Мониторинг можно добавить в задачу по умолчанию ( ). Давайте создадим такую конструкцию:

Теперь, если запустить задачу в консоли, то увидим следующее:

Задачи запустились и выполнились именно в той последовательности, в какой они прописаны в массиве. Сперва выполнились две задачи на конкатенацию и минификацию , а затем запустилась задача на мониторинг .

Gulp “повис” в фоновом режиме и отслеживает изменения с помощью функции в указанных директориях. Проверим это и внесем легкое изменение в любом из файлов (пусть это будут снова и ):

Читайте также:  Как изменить загрузчик windows 7

Функция прилежно отследила оба эти изменения и запустила соотвествующие им задачи:

Отлично! Мы изучили вопрос создания задачи мониторинга в Gulp с помощью функции !

  • Like
  • Tweet
  • +1

RxJs — map

Первый "серьезный" метод в моей RxJs-копилке знаний. На самом деле все просто — этот метод получает на вход поток, обрабатывает каждый ev. … Continue reading

Я использую Gulp для просмотра часов и sass complier. Когда я запускаю «смотреть» в первый раз, тогда выполняется «sass» complier, и он создает файлы css в соответствии с заданным путем. Однако, когда я меняю файлы .scss, он снова не называет «sass» complier. Ниже приведены мои две задачи и переменные.

После команды я использую для запуска «смотреть» задача

Я вижу «часы» будет перезаряжать, когда я меняю файл .scss. Ниже приведен журнал для этого.

Не уверен, что мне здесь не хватает. Пожалуйста помоги.

Создан 13 фев. 15 2015-02-13 02:50:30 joy

1 ответ

Почему это так сложно? Попробуйте это:

И каждый свою задачу, которая требует LiveReload должна иметь .pipe (LiveReload()) в конце. Вам не следует использовать запуск глотки. Вот один из комментариев от GitHub discussion:

gulp.start is undocumented on purpose because it can lead to complicated build files and we don’t want people using it

Создан 13 фев. 15 2015-02-13 11:15:33 niba

Ее не работает . когда я использовал, как вы предложили, чтобы я себе глоток работает только «смотреть» не другой tasks..following является журналами . .bash-3.2 $ gulp watch [13:14:37] Использование gulpfile

/Desktop/Dilip/Projects/OPEN/SourceCode/AWF/OPENApp/gulpfile.js [13:14:37] Начиная «смотреть» .. . [13:14:37] Закончен «смотреть» после 75 мс – joy 14 фев. 15 2015-02-14 20:15:31

Вы уверены, что вы изменили ‘gulp.src’ на ‘gulp.watch’ внутри часовой задачи? – niba 14 фев. 15 2015-02-14 22:41:49

Читайте также:  Спортмастер 500 бонусов это сколько в рублях

yaa . Я просто скопировал ваш предложенный подход . но его не работает . похоже, что детские задачи не начинаются вообще. – joy 14 фев. 15 2015-02-14 23:10:23

Не запускается таск watch, сервер стартует, а после него ничего. В чем проблема и как исправить?

2 ответа 2

Проблему решил добавив аргумент done и вызов данного метода done() в таске server .

может поменять на

Всё ещё ищете ответ? Посмотрите другие вопросы с метками javascript gulp или задайте свой вопрос.

Похожие

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

дизайн сайта / логотип © 2019 Stack Exchange Inc; пользовательское содержимое попадает под действие лицензии cc by-sa 4.0 с указанием ссылки на источник. rev 2019.11.15.35459