Есть ли способ просматривать разные наборы файлов и запускать разные задачи в зависимости от того, какой набор изменился?
Причина, по которой я спрашиваю, заключается в том, что я работаю с несколькими отдельными сайтами для разных стран (Великобритания, США, Франция, Германия). Мой основной sass находится в папке для Великобритании, но есть отдельные папки для французского, немецкого и американского языков с переопределением sass для основного css.
Мой файл grunt выглядит так:
module.exports = function(grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
watch: {
files: ['../style/v4/sass/**/*.scss', '../../US/style/v4/sass/**/*.scss', '../../France/style/v4/sass/**/*.scss', '../../Germany/style/v4/sass/**/*.scss'],
tasks: ['sass:uk'],
options: {
spawn: false
},
},
sass: {
uk: {
options: {
style: 'compressed',
sourcemap: true,
compass: true
},
files: {'../style/v4/css/screen.css': '../style/v4/sass/screen.scss'}
},
us: {
options: {
style: 'compressed',
sourcemap: true,
compass: true
},
files: {'../../US/style/v4/css/screen.css': '../../US/style/v4/sass/screen.scss'}
},
fr: {
options: {
style: 'compressed',
sourcemap: true,
compass: true
},
files: {'../../France/style/v4/css/screen.css': '../../France/style/v4/sass/screen.scss'}
},
de: {
options: {
style: 'compressed',
sourcemap: true,
compass: true
},
files: {'../../Germany/style/v4/css/screen.css': '../../Germany/style/v4/sass/screen.scss'}
}
}
});
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-sass');
grunt.registerTask('default', ['watch']);
};
Итак, как вы можете видеть, в тот момент, когда любой из основных файлов Великобритании или файлов Франции, Германии, США изменяется, они просто запускают задачу компиляции sass:uk.
Что я хочу, так это то, что если файлы uk изменятся, то запустите все подзадачи sass для компиляции scss. Если файлы scss для Франции изменяются, запустите только задачу sass:fr, если изменяются файлы scss для США, запустите только задачу sass:us и так далее.
Как бы я структурировал свой gruntfile для достижения этой цели?