SCSS ファイルの変更を監視し、変更 (追加、削除) されたものとその依存関係 (@import) に対してのみタスク (gulp-ruby-sass) を実行する方法を見つけようとしています。
私の監視タスクコードは次のとおりです。
gulp.task('sass-watch', function(){
gulp.watch('dev/scss/*.scss', ['sass']);
});
私の「sass」タスクコードは次のとおりです。
gulp.task('sass', function(event) {
return sass('dev/scss/*.scss')
.pipe(changed('dist/css'))
.on('error', sass.logError)
.pipe(gulp.dest('dist/css'));
});
sice sass はとにかくフォルダ内のすべてのファイルを取得します。これは思い通りには機能しませんが、興味深いことに気付きました。ファイルの保存によって「sass-watch」がトリガーされると、コマンドラインで次のログを取得しstyle2.scss
ます。
[13:38:01] Using gulpfile C:\1HLAVNI\Lukas\Webdesign\lukasradek\gulpfile.js
[13:38:01] Starting 'sass-watch'...
[13:38:01] Finished 'sass-watch' after 42 ms
[13:38:03] Starting 'sass'...
[13:38:03] write ./\style_combined.css
[13:38:03] write ./\style2.css
[13:38:03] Finished 'sass' after 416 ms
write style_combined.css and style2.css
依存関係が正確にどのようになっているのかをログに記録します。(styl2.scss は style_combined.scss にインポートされます)。したがって、これは、依存関係がどのように設定されているかを何かが知っていることを意味します。問題は、それが何であるかわからないことです。最終ログでのみ、その情報を他の場所で取得することはできません。コードのどこかでその情報を取得できれば、変更されたファイルと依存関係に対してのみタスクをトリガーするために使用できます。
これらのログを出力する可能性のあるものは何ですか?
コードを最小限に抑えようとしましたが、「sass」タスクの内容を削除してもログは残っています。['sass']
からトリガーを削除すると、ログが消えましたgulp.watch
。