5

私は gulp-stylefmt を使用しており、CSS ファイルを保存するたびに実行されます。

function stylelint () {
  return gulp.src('src/**/*.css')
    .pipe($.stylefmt())
    .pipe(gulp.dest('src/'));
}

同時にgulp.watchがパスを監視し、 stylelintタスクを再度src/**/*.css実行します。

コンソール出力:

[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タスクを 1 回だけ実行する方法はありますか?

UPDgulp-cachedを追加したところ、2 回しか実行されなくなりました。一度実行するように改善できますか?

function stylelint () {
  return gulp.src('src/**/*.css')
    .pipe($.cached('stylelint'))
    .pipe($.stylefmt())
    .pipe($.cached('stylelint'))
    .pipe(gulp.dest('src/'));
}
4

1 に答える 1

5

@SvenSchoenung による解決策 1 を since と gulp.lastRun で繰り返した思います。私の場合、 gulp - cached なしで実行しましたが、 gulp4を使用しています

function stylelint () {
  return gulp.src('src/**/*.css', {since: gulp.lastRun(stylelint)})
 .pipe($.stylefmt())
 .pipe(gulp.dest('src/'));
}
于 2016-10-13T22:27:36.320 に答える