До сих пор я использовал эту настройку 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 просто не волнует.