在这里使用 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)
问题在于使用Jade模板中的include
,也就是说你需要包含其他Jade模板以构建完整的HTML文件。
使用编译的单一解决方案无法解决问题,因为如果你正在处理的.jade
文件是通过include current_working_jade.jade
嵌入的,那么包含的文件将不会被重新编译。
除了从头开始编译所有jade
文件之外,是否有任何解决方法?当你需要编译大约60个大型jade文件时,这会导致问题。
我唯一能想到的解决方案是映射Jade模板的依赖项,可以使用外部或目录,但我不知道有哪些工具/插件可以做到这一点...