Gulp-File-Sync - Gulp 的文件同步插件


MIT
跨平台
JavaScript

软件简介

这是一款 Gulp 的插件,其功能是使源目录和目标目录之间的文件操作保持同步,当检测到源目录的文件有增加/删除/更新时,会自动同步到目标目录。

Github:https://github.com/kayo5994/gulp-file-sync

安装

npm install --save-dev gulp-file-sync

使用

var gulp = require('gulp'),
    fileSync = require('gulp-file-sync');

gulp.task('sync', function() {
  gulp.watch(['src/*.*'], function() {
    fileSync('src', 'dest', {recursive: false});
  });
});

API 列表

fileSync(‘source directory’, ‘destination directory’, options)

‘source directory’ and ‘destination directory’

type: String

当 ‘source directory’ 目录发生任何文件变化时会自动同步到 ‘destination directory’ 目录。

options.recursive

type: Boolean

default: true

是否对目录递归调用。

options.ignore

type: string or array or regex or function

排除特定的文件,支持字符串,正则,函数(返回值是被排除的文件),例如:

// ignore all .log files
fileSync('source directory', 'destination directory', {
  ignore: '.log'  
})
fileSync('source directory', 'destination directory', {
  ignore: [/^\.log$/i, '.cache'] // Exclude all .log and .cache files
})
fileSync('source directory', 'destination directory', {
  ignore: /^\.log$/i 
})
fileSync('source directory', 'destination directory', {
  ignore: function(dir, file) {
            return file === '.log';
          } 
})

options.addFileCallback

type: function(fullPathSrc, fullPathDest)

default:

var gutil = require('gulp-util');
function(fullPathSrc, fullPathDest) {
  gutil.log('同步增加文件到 ' + fullPathDest);
}

当 source directory 有新增文件时会调用该方法。

  • fullPathSrc - source directory 目录中新增文件的路径。

  • fullPathDest - destination directory 目录中同步新增的文件的路径。

options.deleteFileCallback

type: function(fullPathSrc, fullPathDest)

default:

var gutil = require('gulp-util');
function(fullPathSrc, fullPathDest) {
  gutil.log('同步删除文件 ' + fullPathDest);
}

当 source directory 有文件被删除时会调用该方法。

  • fullPathSrc - source directory 目录中被删除文件的路径。

  • fullPathDest - destination directory 目录中同步删除的文件的路径。

options.updateFileCallback

type: function(fullPathSrc, fullPathDest)

default:

var gutil = require('gulp-util');
function(fullPathSrc, fullPathDest) {
  gutil.log('同步修改文件 ' + fullPathDest);
}

当 source directory 有文件被修改时会调用该方法。

  • fullPathSrc - source directory 目录中被修改文件的路径。

  • fullPathDest - destination directory 目录中同步修改的文件的路径。

options.beforeAddFileCallback

type: function(fullPathSrc)

当 source directory 有新增文件,但并未开始同步时调用该方法。

  • fullPathSrc - source directory 目录中新增文件的路径。

options.beforeDeleteFileCallback

type: function(fullPathSrc)

当 source directory 有文件被删除,但并未开始同步删除时调用该方法。

  • fullPathSrc - source directory 目录中被删除文件的路径。

options.beforeUpdateFileCallback

type: function(fullPathSrc)

当 source directory 有文件被修改,但并未开始同步修改时调用该方法。

  • fullPathSrc - source directory 目录中被修改文件的路径。