使用 touch 触摸修改后的文件并使用 grunt 观看

touching a modified file using touch and watch with grunt

标题可能自相矛盾,但假设我有一个软件 (s1) WYSIWYG 但这个软件并不是真正的 WYSIWYW(你see is what you write),当编辑源文件并保存时,软件没有更新结果框。

但是,如果另一个软件 (s2) 正在访问该文件,s1 的结果框架会更新,现在您看到的是你得到了什么(某种技巧你..)。

我正在使用 grunt-contrib-watch 观看一组文件,假设在我的场景中是 s2。当我在 s1 中编辑 being-watched 文件时,我希望观察者也执行一个涉及该文件的任务,因此 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 文件的触摸任务。

我该怎么做?

您是否尝试过在 watch 事件中触摸文件?使用此方法有选择地对文件执行 g运行t 任务。

您可以尝试这种设置:

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 }

希望对您有所帮助!