在学习如何使用 grunt ,我正在尝试制作一个简单的 CoffeeScript 观察器/编译器。问题是,如果我告诉 watch
任务监视多个文件,其中一个文件发生变化,它会将所有文件传递给 coffee
命令。这意味着当您更改 1 个文件时,它将重新编译 所有 与 src
模式匹配的文件。相反,我只想重新编译与 src
模式匹配的已更改的单个文件。
这里是 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');
};
这是使用 grunt-coffee ,基本上是这样的:https://gist.github.com/2373159 .
当我运行 grunt watch
并在 test/cases/controller/*.coffee
中保存一个文件时,它会编译 all匹配的文件(将它们放在 tmp/*
中)。
您如何只使用 grunt 编译 更改的文件?
最佳答案
即将推出(目前正在开发中)的 v0.4.0a grunt 具有 grunt.file.watchFiles对象,这是专门为此目的而设计的。 grunt-coffee 插件可能已经添加了对此功能的支持,我不确定。
无论哪种方式,如果您有兴趣在您的项目中尝试开发中的 grunt 版本,请查看 When will I be able to use in-development feature 'X'?常见问题解答条目。
关于javascript - 您如何在 Grunt.js 中查看多个文件,但仅在更改的文件上运行任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12063266/