Не работает пакетное задание
Вот моя задача смотреть Grunfile:
watch: {
jsFiles: {
files: ['www/js/*.js','!www/js/*.min.js'],
tasks: ['jshint','<%= pkg.jsTask %>'],
options: {
event: ['added', 'changed'],
spawn: false
}
},
cssFiles : {
files : ['<%= pkg.cssTask === "less" ? "www/less/*.less" : "www/css/*.css" %>'],
tasks : ['<%= pkg.cssTask %>'],
options: {
event: ['added', 'changed'],
spawn: false
}
},
pageFiles : {
files: ['www/**.php','www/**.html'],
tasks: ['<%= "uglify:some" === pkg.jsTask ? "dom_munger:whenSomeJs" : "dom_munger:whenAllInOneJs" %>','undoDomMungerQuoteShit'],
options: {
event: ['added', 'changed'],
spawn: false
}
},
otherFiles : {
files: ['www/**','!www/**.php','!www/**.html','!www/js/*.js','!www/css/*.less','!www/css/*.css'],
tasks: ['copy:regularFiles'],
options: {
event: ['added', 'changed'],
spawn: false
}
},
allFiles : {
files: ['www/**'],
options: {
event: ['deleted'],
spawn: false
}
},
ftpFiles : {
files: ['build/**'],
tasks: ['copy:ftp'],
options: {
event: ['added', 'changed'],
spawn: false
}
},
ftpDelete : {
files: ['build/**'],
options: {
event: ['deleted'],
spawn: false
}
}
}
Все подзадачи помещают обработанный файл в папку "build". Все подзадачи, кроме одной, работают как положено: "ftpFiles"
Эта подзадача ищет изменения в папке "build". Когда я вручную обновляю какой-нибудь файл папки build, работает "ftpFiles". Но когда измененный файл обновляется какой-либо другой подзадачей, "ftpFiles" не запускается.
Как я могу это исправить?
1 ответ
Решение
Похоже, вам нужны одновременные наблюдатели для запуска. Вы можете использовать grunt-concurrent или grunt-focus для достижения этого.
Ниже приведен пример параллельного выполнения:
concurrent: {
options: {
logConcurrentOutput: true
},
dev: {
tasks: ["watch:js", "watch:ftp"]
}
}
grunt.registerTask("watch-dev", ["concurrent:dev"]);