grunt:观察并同步文件

时间:2013-12-09 15:06:23

标签: javascript node.js gruntjs

我想运行一个本地同步守护进程。

应该查看src目录并将任何已更改的文件复制到dst目录。 src中有许多子目录,因此应保留相对路径。已创建dst中所有必需的子目录。

我想过滤仅用于*.js个文件。

我找到了grunt-sync工具。文档很短,我甚至不知道它是否适合我。这是我的Gruntfile

module.exports = function (grunt) {

    grunt.initConfig({
        sync: {
          main: {
            files: [{
                cwd: src,
                src: ['**/*.js'],
                dest: dst
            }]
          }
        }    
    });

    grunt.loadNpmTasks('grunt-sync');
    grunt.registerTask('default', 'sync');

};

当我跑咕噜咕噜时,我看不到任何观察任务。 Grunt冻结几秒钟,然后复制所有文件并退出。我想要一个watch-sync守护进程。

2 个答案:

答案 0 :(得分:2)

我创建了一个名为duplicate的工具,它会做你想要的(虽然一年后),它会在启动时复制所有匹配的文件,并继续观察是否会有任何变化。

它不是作为Gulp或Grunt插件编写的,因为它不需要,但当然您可以轻松地在Gulp或Grunt任务中运行它。

查看https://github.com/vilic/duplicate

答案 1 :(得分:0)

可能有点晚了,但是我有同样的问题。我要做的是将两种工具结合在一起。grunt-sync和grunt-contrib-watch ..

module.exports =函数(咕unt声){

grunt.initConfig({
    sync: {
      main: {
        files: [{
            cwd: src,
            src: ['**/*.js'],
            dest: dst
        }]
      }
    },
    watch: {
       jsxfiles: {
       files: ['**/*.js'],
       tasks: ['sync:main'],
     } //this means that when any of the pattern files changes, the sync task will be run...
     }  
 });

grunt.loadNpmTasks('grunt-sync');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.registerTask('default', 'watch'); //run the watch task isntead of just the sync once..

};

我希望这会有所帮助

乔恩·乔恩