Я использую Grunt для компиляции моего CSS с компасом и запускаю перезагрузку браузера. Это мои часовые задачи:
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}'],
},
},
На данный момент задача livereload не запускается до тех пор, пока задача стилей не будет полностью завершена, однако imagemin может добавить значительную задержку, и все, что меня действительно волнует, — это CSS, который готов, как только компас завершит работу.
Как я могу заставить livereload запускаться сразу после завершения работы компаса, но разрешить выполнение других задач? Я попробовал приведенную ниже конфигурацию, которая запускает imagemin при изменении CSS, однако, похоже, она не работает. С этим 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}'],
},
},
Спасибо.