Задать вопрос
@YaMariya

Как заставить gulp.watch реагировать только на сохранение, а не любое изменение файлов?

Здравствуйте! Подскажите, как быть - по-умолчанию, gulp вотчер следит за любыми изменениями в файле и запускает соответствующую задачу просто через какие-то миллисекунды после внесения изменений.

Я хочу, чтобы вотчер реагировал только тогда, когда файл будет сохранён, а не просто туда внесли несколько символов и убрали руки с клавиатуры. Это можно как-то сделать?

Если непонятно, то привожу пример. Ниже - максимально упрощенный gulpfile.

const gulp = require('gulp');

function styles() {
  return gulp.src('./src/style.css')
    .pipe(gulp.dest('.app/'))
}

function watcher() {
  gulp.watch('./src/style.css', styles);
}

exports.default = gulp.series(styles, watcher);


Как только я в src/style.css введу любые символы (хоть кириллицу, хоть пробел), то через сколько-то миллисекунд wacther среагирует и выполнит таск styles. Мне это не нужно и неудобно. Я хочу, чтобы он реагировал только на ctrl + s.
  • Вопрос задан
  • 58 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
rqdkmndh
@rqdkmndh
Web-разработчик
Никак он не может отслеживать изменения в файле, пока его не сохранят. В каком редакторе вы пишите? Отключите опцию автосохранение редактора. В самом ватчере, можно использовать параметр задержки
function watcher() {
  gulp.watch('./src/style.css', { delay: 500 }, styles);
}
// в данном случае будет задержка в полсекунды после сохранения файла.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы