标题可能是矛盾的,但我要说有一个软件( s1 )WYSIWYG但是这个软件实际上不是 WYSIWYW(你看到的是你所写的)< / em>,在编辑源文件并保存时,软件不会更新结果框。
但是,如果另一个软件( s2 )正在触摸该文件, s1 的结果框架会更新,现在您所看到的就是您所获得的(某种技巧)咋..)。
我正在使用grunt-contrib-watch
来观看某些文件,假设在我的方案中它是 s2 。当我在 s1 中编辑正在观看的文件时,我希望观察者也执行触及此文件的任务,因此 s1 会显示结果。
这基本上就是我想要的代码:
module.exports = function (grunt) {
grunt.initConfig({
touch: {
src: "the being-saved '.cf' file" // how can I reference this file ?
},
watch: {
files: ['**/*.cf'],
tasks: ['touch']
}
});
grunt.loadNpmTasks('grunt-touch');
grunt.loadNpmTasks('grunt-contrib-watch');
};
当我编辑并保存.cf
文件时,我希望观察者执行触摸任务,触摸刚刚保存的.cf
文件。
我该怎么做?
答案 0 :(得分:1)
您是否尝试过触摸 watch 事件中的文件?使用此方法有选择地对文件执行grunt任务。
您可以使用这种设置:
grunt.event.on('watch', function(action, filepath) {
//filepath is what you need
//do the touch here. ie: set the src of touch task
grunt.config('touch.src', filepath);
//do some more work if needed
//...
//tell watch what to do
grunt.config('watch.tasks', 'touch');
});
您可能需要将nospawn添加到 watch 任务,以使其在相同的上下文中运行:
options : { nospawn : true }
希望这有帮助!