In learning how to use grunt, I am trying to make a simple coffee-script watcher/compiler. The problem is, if I tell the watch
task to watch several files, and one changes, it is going to pass all of the files to the coffee
command. This means when you change 1 file, it's going to recompile all of the files matching the src
pattern. Instead, I want to only recompile the single file that changed that matches the src
pattern.
Here is the grunt.js
:
module.exports = function(grunt) {
grunt.initConfig({
coffee: {
app: {
src: ['test/cases/controller/*.coffee'],
dest: 'tmp',
options: {
bare: true,
preserve_dirs: true
}
}
},
watch: {
files: ['<config:coffee.app.src>'],
tasks: ['coffee:app']
}
});
grunt.loadNpmTasks('grunt-coffee');
grunt.registerTask('default', 'coffee');
};
This is using grunt-coffee, which is basically this: https://gist.github.com/2373159.
When I run grunt watch
, and I save a file in test/cases/controller/*.coffee
, it compiles all of the matching files (putting them in tmp/*
).
How do you instead only compile the changed file using grunt?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…