我有 grunt setup 将我所有的咖啡文件编译成 javascript 并使用 dynamic_mappings 维护所有文件夹结构,效果很好。
coffee: {
dynamic_mappings: {
files: [{
expand: true,
cwd: 'assets/scripts/src/',
src: '**/*.coffee',
dest: 'assets/scripts/dest/',
ext: '.js'
}]
}
}
然后我想做的是使用 watch 编译任何更改的咖啡文件并仍然保持文件夹结构。这可以将上述任务与此监视任务一起使用:
watch: {
coffeescript: {
files: 'assets/scripts/src/**/*.coffee',
tasks: ['coffee:dynamic_mappings']
}
}
问题是,当一个文件更改时,它会将整个咖啡目录再次编译为 Javascript,如果它只编译更改为 Javascript 的单个咖啡文件,那就太好了。这在 Grunt 中是否自然可行,或者这是一个自定义功能。这里的关键是它必须维护文件夹结构,否则很容易。
我们有自定义的监视脚本在工作,我正试图在 Grunt 上出售它们,但需要这个功能来做到这一点。