Не работает пакетное задание

Вот моя задача смотреть 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"]);
Другие вопросы по тегам