Grunt を使用して CSS をコンパスでコンパイルし、ブラウザの livereload をトリガーしています。これらは私の監視タスクです:
watch: {
styles: {
options: {
spawn: false,
},
files: [assetsDir + '/**/*.scss', '!**/*.{dev,min}.scss'],
tasks: [
'concat:styles',
'compass:styles',
'imagemin:styles',
'cssmin:styles',
'clean:styles',
],
},
scripts: {
options: {
spawn: false,
},
files: [assetsDir + '/**/*.js', '!**/*.{dev,min}.js'],
tasks: [
'concat:scripts',
'uglify:scripts',
],
},
livereload: {
options: {
livereload: true,
spawn: false,
},
files: [assetsDir + '/**/*.{dev,min}.{css,js}'],
},
},
現時点では、styles タスクが完全に完了するまで livereload タスクはトリガーされませんが、imagemin によってかなりの遅延が発生する可能性があります。私が本当に気にかけているのは、コンパスが終了するとすぐに準備が整う CSS だけです。
コンパスが完了するとすぐに livereload をトリガーし、他のタスクを続行できるようにするにはどうすればよいですか? CSS が変更されたときに imagemin をトリガーする以下の構成を試しましたが、機能していないようです。この imagemin では、何らかの理由でまったくトリガーされません。複数のタスクで同じファイルを監視することはできませんか?
watch: {
styles: {
options: {
spawn: false,
},
files: [assetsDir + '/**/*.scss', '!**/*.{dev,min}.scss'],
tasks: [
'concat:styles',
'compass:styles',
'cssmin:styles',
'clean:styles',
],
},
scripts: {
options: {
spawn: false,
},
files: [assetsDir + '/**/*.js', '!**/*.{dev,min}.js'],
tasks: [
'concat:scripts',
'uglify:scripts',
],
},
images: {
options: {
spawn: false,
},
files: [assetsDir + '/**/*.{dev,min}.css'],
tasks: [
'imagemin:styles',
],
},
livereload: {
options: {
livereload: true,
spawn: false,
},
files: [assetsDir + '/**/*.{dev,min}.{css,js}'],
},
},
ありがとう。