grunt:观察并同步文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了grunt:观察并同步文件相关的知识,希望对你有一定的参考价值。

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

它应该观察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守护进程。

答案

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

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

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

另一答案

可能有点晚了但是......我有同样的问题。我做的是结合两个工具.. grunt-sync和grunt-contrib-watch ..

module.exports = function(grunt){

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..

};

我希望这是有帮助的

KR Jon

以上是关于grunt:观察并同步文件的主要内容,如果未能解决你的问题,请参考以下文章

File Watcher提供错误代码255 - Syntaxerror

永远观察实时数据的片段

#VSCode保存插件配置并使用 gist 管理代码片段

grunt (minimatch/glob) 文件夹排除

grunt与seajs结合应用

多线程 Thread 线程同步 synchronized