1.0.0 • Published 8 years ago

gulp-filter-cache v1.0.0

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

gulp-filter-cache Build Status

gulp-filter-cache creates a local cache file to keep simple and fast to use only new or modified files.

I made this plugin especially to use with vinyl-ftp.
Vinyl-ftp can check for new or modified files using date/time of remote files. It used to be a slow process in shared hosts or using a lot of files. Using gulp-file-cache, the files will be checked locally and after vinyl-ftp upload them.

Install

$ npm install --save-dev gulp-filter-cache

Usage

var gulp = require('gulp');
var fileCache = require('gulp-filter-cache');
var ftp = require('vinyl-ftp');

gulp.task('ftp-deploy', function () {
    
    var conn = ftp.create({
        host:     'mywebsite.tld',
        user:     'me',
        password: 'mypass',
    });

    return gulp.src('public/**/*')
        .pipe(fileCache())
        .pipe(conn.dest('/remote-folder'));
});

API

gulp-file-cache(options)

options

cacheFile

Type: string
Default: ./node_modules/.filter-cache

Cache File path. By default the file is created in node_modules folder. You can change it defining a new file path in cacheFile option.

method

Type: string
Default: time

The gulp-filter-cache can use two method of file comparition.

  • time uses modification time of file
  • hash uses md5 hash signature of file
onlyFiles

Type: bool
Default: false

Set it to true if you don't want to use folders on your stream. All empty folders will be ignored by filter.

confirmToSave

Type: bool
Default: false

Set it to true if you want to save only processed files to cache. You must pipe to filterCache.saveCache() after modifications (see below).

var gulp = require('gulp');
var fileCache = require('gulp-filter-cache');
var ftp = require('vinyl-ftp');

gulp.task('ftp-deploy', function () {
    
    var conn = ftp.create({
        host:     'mywebsite.tld',
        user:     'me',
        password: 'mypass',
    });
    
    var cache = fileCache({
        confirmToSave: true
    })

    return gulp.src('public/**/*')
        .pipe(cache)
        .pipe(
            conn
                .dest('/remote-folder')
                .on('error', function(){
                    console.log('Oops! Error on upload! Only processed files will be saved on cache.');
                })
            )
        .pipe(cache.saveCache());
});

License

MIT © Ricardo Riogo (ricardoriogo.com)