Gulp / w Jekyll - Смотреть обратный вызов запускается только один раз - PullRequest
0 голосов
/ 25 ноября 2018

До сих пор я использовал эту настройку Gulp в нескольких проектах, но этот экземпляр по какой-то причине не работает.

Я создаю веб-сайт jekyll, но поскольку конвейер генерации CSS в jekyll не соответствует моим потребностям, япереключился на Gulp, и я установил задачу наблюдения, которая требует изменений в файле _site/assets/style.css.

Вот код:

const gulp = require('gulp');
const purgecss = require('gulp-purgecss');
const postcss = require('gulp-postcss');
const rename = require('gulp-rename');
const { watch } = require('gulp');

gulp.task('build:css', () => 
    gulp.src('_site/assets/style.css')
        .pipe(postcss([
            require('tailwindcss')('tailwind.js')
        ]))
        .pipe(purgecss({
            content: ['_site/**/*.html']
        }))
        // TODO: add minification
        .pipe(rename('style.min.css'))
        .pipe(gulp.dest('_site/assets/'))
);

gulp.task('watch', () => {
    const watcher = watch('_site/assets/style.css');
    watcher.on('change', function(path, stats) {
        console.log(`File ${path} was changed`);
    });

    watcher.on('add', function(path, stats) {
        console.log(`File ${path} was added`);
    });

    watcher.on('unlink', function(path, stats) {
        console.log(`File ${path} was removed`);
    });
    //gulp.watch('_site/assets/style.css', gulp.parallel('build:css'))
});

Вывод на консоль выглядит следующим образом:

myName@my-pc:/mnt/c/...$ echo "Before debug code addition"
Before debug code addition

myName@my-pc:/mnt/c/...$ npm test

> gulp watch --gulpfile gulpfile

[18:29:38] Using gulpfile /mnt/c/.../gulpfile
[18:29:38] Starting 'watch'...
[18:29:46] Starting 'build:css'...
[18:29:48] Finished 'build:css' after 1.99 s
^C
myName@my-pc:/mnt/c/...$ echo "After debug code addition"
After debug code addition

myName@my-pc:/mnt/c/...$ npm test

> gulp watch --gulpfile gulpfile

[18:32:59] Using gulpfile /mnt/c/.../gulpfile
[18:32:59] Starting 'watch'...
File _site/assets/style.css was changed

Наблюдатель не запускает никаких событий, кроме первого change.Не имеет значения, сколько раз я генерирую один и тот же файл (с разным содержимым) с помощью jekyll, потому что Gulp просто не волнует.

...