Gulp-File-Sync Gulp 的文件同步插件 项目简介
这是一款 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.recursivetype: Booleandefault: true是否对目录递归调用。options.ignoretype: 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.addFileCallbacktype: function(fullPathSrc, fullPathDest)default:var gutil = require('gulp-util');
function(fullPathSrc, fullPathDest) {
gutil.log('同步增加文件到 ' + fullPathDest);
}当 source directory 有新增文件时会调用该方法。fullPathSrc - source directory 目录中新增文件的路径。fullPathDest - destination directory 目录中同步新增的文件的路径。options.deleteFileCallbacktype: function(fullPathSrc, fullPathDest)default:var gutil = require('gulp-util');
function(fullPathSrc, fullPathDest) {
gutil.log('同步删除文件 ' + fullPathDest);
}当 source directory 有文件被删除时会调用该方法。fullPathSrc - source directory 目录中被删除文件的路径。fullPathDest - destination directory 目录中同步删除的文件的路径。options.updateFileCallbacktype: function(fullPathSrc, fullPathDest)default:var gutil = require('gulp-util');
function(fullPathSrc, fullPathDest) {
gutil.log('同步修改文件 ' + fullPathDest);
}当 source directory 有文件被修改时会调用该方法。fullPathSrc - source directory 目录中被修改文件的路径。fullPathDest - destination directory 目录中同步修改的文件的路径。options.beforeAddFileCallbacktype: function(fullPathSrc)当 source directory 有新增文件,但并未开始同步时调用该方法。fullPathSrc - source directory 目录中新增文件的路径。options.beforeDeleteFileCallbacktype: function(fullPathSrc)当 source directory 有文件被删除,但并未开始同步删除时调用该方法。fullPathSrc - source directory 目录中被删除文件的路径。options.beforeUpdateFileCallbacktype: function(fullPathSrc)当 source directory 有文件被修改,但并未开始同步修改时调用该方法。fullPathSrc - source directory 目录中被修改文件的路径。
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.recursivetype: Booleandefault: true是否对目录递归调用。options.ignoretype: 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.addFileCallbacktype: function(fullPathSrc, fullPathDest)default:var gutil = require('gulp-util');
function(fullPathSrc, fullPathDest) {
gutil.log('同步增加文件到 ' + fullPathDest);
}当 source directory 有新增文件时会调用该方法。fullPathSrc - source directory 目录中新增文件的路径。fullPathDest - destination directory 目录中同步新增的文件的路径。options.deleteFileCallbacktype: function(fullPathSrc, fullPathDest)default:var gutil = require('gulp-util');
function(fullPathSrc, fullPathDest) {
gutil.log('同步删除文件 ' + fullPathDest);
}当 source directory 有文件被删除时会调用该方法。fullPathSrc - source directory 目录中被删除文件的路径。fullPathDest - destination directory 目录中同步删除的文件的路径。options.updateFileCallbacktype: function(fullPathSrc, fullPathDest)default:var gutil = require('gulp-util');
function(fullPathSrc, fullPathDest) {
gutil.log('同步修改文件 ' + fullPathDest);
}当 source directory 有文件被修改时会调用该方法。fullPathSrc - source directory 目录中被修改文件的路径。fullPathDest - destination directory 目录中同步修改的文件的路径。options.beforeAddFileCallbacktype: function(fullPathSrc)当 source directory 有新增文件,但并未开始同步时调用该方法。fullPathSrc - source directory 目录中新增文件的路径。options.beforeDeleteFileCallbacktype: function(fullPathSrc)当 source directory 有文件被删除,但并未开始同步删除时调用该方法。fullPathSrc - source directory 目录中被删除文件的路径。options.beforeUpdateFileCallbacktype: function(fullPathSrc)当 source directory 有文件被修改,但并未开始同步修改时调用该方法。fullPathSrc - source directory 目录中被修改文件的路径。