我想自动修复我的 CSS 个源文件,但我遇到了无限循环
I want to automatically fix my CSS source files, but I get an endless loop
我每次保存任何 CSS 文件时都使用 gulp-stylefmt 和它 运行:
function stylelint () {
return gulp.src('src/**/*.css')
.pipe($.stylefmt())
.pipe(gulp.dest('src/'));
}
同时gulp.watch再次观察路径src/**/*.css
和运行stylelint任务。
控制台输出:
[16:32:24] Starting 'stylelint'...
[16:32:25] Finished 'stylelint' after 554 ms
[16:32:25] Starting 'stylelint'...
[16:32:25] Finished 'stylelint' after 60 ms
[16:32:25] Starting 'stylelint'...
[16:32:25] Finished 'stylelint' after 33 ms
[16:32:25] Starting 'stylelint'...
[16:32:25] Finished 'stylelint' after 36 ms
[16:32:26] Starting 'stylelint'...
[16:32:26] Finished 'stylelint' after 34 ms
[16:32:26] Starting 'stylelint'...
[16:32:26] Finished 'stylelint' after 29 ms
[16:32:26] Starting 'stylelint'...
[16:32:26] Finished 'stylelint' after 27 ms
[16:32:26] Starting 'stylelint'…
[16:32:26] Finished 'stylelint' after 32 ms
有一种方法可以纠正这种行为并且 运行 stylelint 任务只能执行一次?
UPD。我添加了 gulp-cached,现在它只 运行 两次。我可以把它提高到 运行 一次吗?
function stylelint () {
return gulp.src('src/**/*.css')
.pipe($.cached('stylelint'))
.pipe($.stylefmt())
.pipe($.cached('stylelint'))
.pipe(gulp.dest('src/'));
}
我想我用 since 和 gulp.lastRun 重复了@SvenSchoenung 的解决方案 1。在我的例子中,我没有使用 gulp-cached,但我使用了 gulp4
function stylelint () {
return gulp.src('src/**/*.css', {since: gulp.lastRun(stylelint)})
.pipe($.stylefmt())
.pipe(gulp.dest('src/'));
}
我每次保存任何 CSS 文件时都使用 gulp-stylefmt 和它 运行:
function stylelint () {
return gulp.src('src/**/*.css')
.pipe($.stylefmt())
.pipe(gulp.dest('src/'));
}
同时gulp.watch再次观察路径src/**/*.css
和运行stylelint任务。
控制台输出:
[16:32:24] Starting 'stylelint'...
[16:32:25] Finished 'stylelint' after 554 ms
[16:32:25] Starting 'stylelint'...
[16:32:25] Finished 'stylelint' after 60 ms
[16:32:25] Starting 'stylelint'...
[16:32:25] Finished 'stylelint' after 33 ms
[16:32:25] Starting 'stylelint'...
[16:32:25] Finished 'stylelint' after 36 ms
[16:32:26] Starting 'stylelint'...
[16:32:26] Finished 'stylelint' after 34 ms
[16:32:26] Starting 'stylelint'...
[16:32:26] Finished 'stylelint' after 29 ms
[16:32:26] Starting 'stylelint'...
[16:32:26] Finished 'stylelint' after 27 ms
[16:32:26] Starting 'stylelint'…
[16:32:26] Finished 'stylelint' after 32 ms
有一种方法可以纠正这种行为并且 运行 stylelint 任务只能执行一次?
UPD。我添加了 gulp-cached,现在它只 运行 两次。我可以把它提高到 运行 一次吗?
function stylelint () {
return gulp.src('src/**/*.css')
.pipe($.cached('stylelint'))
.pipe($.stylefmt())
.pipe($.cached('stylelint'))
.pipe(gulp.dest('src/'));
}
我想我用 since 和 gulp.lastRun 重复了@SvenSchoenung 的解决方案 1。在我的例子中,我没有使用 gulp-cached,但我使用了 gulp4
function stylelint () {
return gulp.src('src/**/*.css', {since: gulp.lastRun(stylelint)})
.pipe($.stylefmt())
.pipe(gulp.dest('src/'));
}