Использование версии того, что grunt-contrib-watch
рекомендует для компиляции только измененных файлов здесь: https://github.com/gruntjs/grunt-contrib-watch#compiling-files-as-needed
var changedFiles = Object.create(null);
var onChange = grunt.util._.debounce(function() {
grunt.config('jshint.all.src', Object.keys(changedFiles));
changedFiles = Object.create(null);
}, 200);
grunt.event.on('watch', function(action, filepath) {
changedFiles[filepath] = action;
onChange();
});
Это прекрасно работает (опять же с вариантом, который я написал здесь: https://gist.github.com/pgilad/6897875)
Проблема заключается в использовании include
внутри шаблонов Jade, что означает, что вы включаете другие шаблоны Jade для создания полного html-файла.
Использование единственного решения для компиляции не работает, потому что если файл .jade
, над которым вы работаете, встраивается с использованием include current_working_jade.jade
, включающий файл не будет перекомпилирован.
Существуют ли обходные пути для этого помимо компиляции всех ваших jade
файлов с нуля? Это вызывает проблему, когда у вас есть около ~ 60 больших файлов jade для компиляции каждый раз.
Единственное возможное решение, которое я могу придумать, это либо сопоставление зависимостей нефритовых шаблонов либо извне, либо с помощью каталогов, но я не знаю никаких инструментов/плагинов, которые это делают...