0.3.2 • Published 8 years ago

gulp-files-sync v0.3.2

Weekly downloads
7
License
MIT
Repository
github
Last release
8 years ago

Deprecation warning

This package has been deprecated. Please use syncy instead.

The reason: This package works not only with Gulp.

gulp-files-sync

A Gulp plugin providing one-way synchronization of directories with glob.

Travis NPM version devDependency Status devDependency Status

Install

$ npm install -S gulp-files-sync

Why?

  • Fast by using streams and Promises. Used cp-file and rimraf.
  • User-friendly by accepting globs.

Usage

var gulp = require('gulp');
var fsync = require('gulp-files-sync');

gulp.task('sync', function() {
  fsync(['src/**', '!src/folder/**'], 'dest').end();

  // Or with pipeline
  gulp.src('')
    .pipe(fsync(['src/**', '!src/folder/**'], 'dest'));
});

API

fsync(glob, dest, [options])

glob

Type: array|string

Glob pattern. Files to copy.

dest

Type: string

Destination directory.

options

Type: object

Plugin settings.

Options

{
  // Display log messages when copying and removing files
  verbose: false,
  // The base path to be removed from the path. Default: none
  base: 'base_path'
  // Remove all files from dest that are not found in src. Default: false
  updateAndDelete: true,
  // Never remove js files from destination. Default: false
  ignoreInDest: '**/*.js'
}

Tests

Tech specs:

  • Intel Core i7-3610QM
  • RAM 8GB
  • SSD (555MB/S, 530MB/S)
  • Windows 10
  • Node.js v4.2.4

Files: AngularJS from master branch (1462 files, 19368Кб)

Note: UpdateAndDelete option is enabled in the grunt-sync, because other plugins have this option initially.

Description of testsgulp-files-syncgulp-directory-syncgrunt-sync
First run2,4s4,5s5,8s
Re-run0,6s0,8s0,7s
Changed single file0,6s0,8s0,7s
Delete files from destination directories and run2,3s4,5s5,7s
Delete files from the source directory0,5s0,5s0,5s

How to work with Grunt?

Just use a custom task:

var fsync = require('gulp-files-sync');

module.exports = function(grunt) {
  // Default task(s).
  grunt.registerTask('default', function() {
    var done = this.async();
    fsync(['node_modules/grunt/**'], 'dest')
      .on('end', function() {
        done();
      })
      .end();
  });

};

Changelog

  • v0.3.2 (2015.02.29) — Add deprecation warning.
  • v0.3.1 (2015.01.13) — Update conditions the update files.
  • v0.3.0 (2015.01.12) — Initialization().

License

MIT.