Gulp Watch не обнаруживает изменения в папке SASS SCSS - PullRequest
1 голос
/ 07 апреля 2019

Я впервые настроил Gulp для компиляции SCSS в CSS с использованием NanoCSS и gulp-css. Я создал do-sass, который успешно компилирует SCSS и минимизирует CSS. Однако, когда я помещаю это в задачу наблюдения, это не работает. Если я изменю любой из моих файлов SCSS, команда do-sass не будет запущена. Может кто-нибудь сказать мне, что я сделал не так?

const gulp = require('gulp');
const sass = require('gulp-sass');
const cssnano = require('gulp-cssnano');


gulp.task('sass', function(){
  return gulp.src('scss/styles.scss')
    .pipe(sass())
    .pipe(gulp.dest('./'))
});

// Minifys .css and reload browser.
gulp.task('mini-css', function() {
    return gulp.src('styles.css')
    .pipe(cssnano())
    .pipe(gulp.dest('./'));
});

// Compile and minify css.
gulp.task('do-sass', gulp.series('sass', 'mini-css'));


gulp.task('watch', function(){
  gulp.watch('scss/*/.scss', gulp.series('do-sass')); 
});

1 Ответ

1 голос
/ 07 апреля 2019

Шаблон glob, используемый вашей задачей наблюдения, вероятно, неверен: scss/*/.scss не будет искать нужные файлы SCSS, потому что попытается пройти еще один каталог глубже и искать файлы с именем .scss (без любое имя файла, только расширение).

Вам нужно использовать синтаксис double-star , если вы хотите глобализировать любые файлы SCSS, вложенные на любом уровне:

scss/**/*.scss

Поэтому, если вы обновите задачу часов как таковую, она должна работать:

gulp.task('watch', function(){
  gulp.watch('scss/**/*.scss', gulp.series('do-sass')); 
});
...