いくつかの gulp プラグイン ( jscs
、csscomb
) を使用して、開発時にその場でコードのスタイルを設定しようとしています。
format タスクで無限ループを実行している gulp プロセスに問題があります。
何が起こっていると私は信じていますか:
serve
ある種のタスクを開始する- ステージング サーバー用のファイルを準備するすべてのタスクで初期実行が実行されます。
- 監視タスクと並行して、ローカル ステージング サーバーが開始されます。
myfile.scss
開発者によって更新されます- gulp ウォッチャーが csscomb タスクを開始します
- csscomb プラグインはファイルを変更して置き換えます
- 監視タスクは、ファイル置換からの変更を確認し、フォーマット タスクを再度開始します...
- csscomb プラグインが再び実行されます...
このループを引き起こすスニペットを次に示します。(注: これは gulp の v4 を使用します)
'use strict'
import { task, parallel, series, src, dest, watch, plugins } from './gulp';
import { startStagingServer } from './servers';
import { solution } from './solution.map';
const path = require('path');
task('serve', parallel(startStagingServer, watchStyles);
function watchStyles() {
watch([ solution.src.styles ], series(formatStyles, compileStyles))
}
function formatStyles(done) {
return src([ solution.src.styles ])
.pipe(plugins.csscomb())
.pipe(dest(solution.src.mount)) // the root of the solution
}
function compileStyles() {
return src([ solution.src.styles ])
.pipe(plugins.sass().on('error', plug.sass.logError))
.pipe(dest(path.join(solution.dest.stage, 'serve')));
}
これを回避する方法を知っている人はいますか?