Improve gulp.watch()

This commit is contained in:
Tanguy Krotoff
2015-07-04 17:18:50 +02:00
parent ab3cc82066
commit 7a6400a7d4
2 changed files with 48 additions and 33 deletions

View File

@@ -1,6 +1,8 @@
/// <reference path="gulp.d.ts" />
/// <reference path="../browser-sync/browser-sync.d.ts"/>
import gulp = require("gulp");
import browserSync = require("browser-sync");
var typescript: IGulpPlugin = null; // this would be the TypeScript compiler
var jasmine: IGulpPlugin = null; // this would be the jasmine test runner
@@ -27,3 +29,40 @@ gulp.task('test', ['compile', 'compile2'], function()
});
gulp.task('default', ['compile', 'test']);
var opts = {};
gulp.watch('*.html', 'compile');
gulp.watch('*.html', ['compile', 'test']);
gulp.watch('*.html', () => {});
gulp.watch('*.html', [() => {}, (event) => {}]);
gulp.watch('*.html', ['compile', () => {}]);
gulp.watch('*.html', opts, 'compile');
gulp.watch('*.html', opts, ['compile', 'test']);
gulp.watch('*.html', opts, () => {});
gulp.watch('*.html', opts, [() => {}, (event) => {}]);
gulp.watch('*.html', opts, ['compile', () => {}]);
gulp.watch(['*.html', '*.ts'], 'compile');
gulp.watch(['*.html', '*.ts'], ['compile', 'test']);
gulp.watch(['*.html', '*.ts'], () => {});
gulp.watch(['*.html', '*.ts'], [() => {}, (event) => {}]);
gulp.watch(['*.html', '*.ts'], ['compile', () => {}]);
gulp.watch(['*.html', '*.ts'], opts, 'compile');
gulp.watch(['*.html', '*.ts'], opts, ['compile', 'test']);
gulp.watch(['*.html', '*.ts'], opts, () => {});
gulp.watch(['*.html', '*.ts'], opts, [() => {}, (event) => {}]);
gulp.watch(['*.html', '*.ts'], opts, ['compile', () => {}]);
var watcher = gulp.watch('*.html', event => {
console.log('Event type: ' + event.type);
console.log('Event path: ' + event.path);
});
gulp.task('serve', ['compile'], () => {
var browser = browserSync.create();
gulp.watch(['*.html', '*.ts'], ['compile', browser.reload]);
});

42
gulp/gulp.d.ts vendored
View File

@@ -236,45 +236,21 @@ declare module gulp {
dest(outFolder:(file:string)=>string, opt?:IDestOptions): NodeJS.ReadWriteStream;
/**
* Watch files and do something when a file changes. This always returns an EventEmitter that emits change events.
*
* @param glob a single glob or array of globs that indicate which files to watch for changes.
* @param tasks names of task(s) to run when a file changes, added with gulp.task()
*/
watch(glob:string, tasks:string[]): EventEmitter;
watch(glob:string[], tasks:string[]): EventEmitter;
/**
* Watch files and do something when a file changes. This always returns an EventEmitter that emits change events.
*
* @param glob a single glob or array of globs that indicate which files to watch for changes.
* @param opt options, that are passed to the gaze library.
* @param tasks names of task(s) to run when a file changes, added with gulp.task()
* @param fn a callback or array of callbacks to be called on each change, or names of task(s) to run when a file changes, added with gulp.task().
*/
watch(glob:string, opt:IWatchOptions, tasks:string[]): EventEmitter;
watch(glob:string[], opt:IWatchOptions, tasks:string[]): EventEmitter;
/**
* Watch files and do something when a file changes. This always returns an EventEmitter that emits change events.
*
* @param glob a single glob or array of globs that indicate which files to watch for changes.
* @param fn a callback or array of callbacks to be called on each change.
*/
watch(glob:string, fn:IWatchCallback): EventEmitter;
watch(glob:string[], fn:IWatchCallback): EventEmitter;
watch(glob:string, fn:IWatchCallback[]): EventEmitter;
watch(glob:string[], fn:IWatchCallback[]): EventEmitter;
/**
* Watch files and do something when a file changes. This always returns an EventEmitter that emits change events.
*
* @param glob a single glob or array of globs that indicate which files to watch for changes.
* @param opt options, that are passed to the gaze library.
* @param fn a callback or array of callbacks to be called on each change.
*/
watch(glob:string, opt:IWatchOptions, fn:IWatchCallback): EventEmitter;
watch(glob:string, opt:IWatchOptions, fn:IWatchCallback[]): EventEmitter;
watch(glob:string, fn:(IWatchCallback|string)): EventEmitter;
watch(glob:string, fn:(IWatchCallback|string)[]): EventEmitter;
watch(glob:string, opt:IWatchOptions, fn:(IWatchCallback|string)): EventEmitter;
watch(glob:string, opt:IWatchOptions, fn:(IWatchCallback|string)[]): EventEmitter;
watch(glob:string[], fn:(IWatchCallback|string)): EventEmitter;
watch(glob:string[], fn:(IWatchCallback|string)[]): EventEmitter;
watch(glob:string[], opt:IWatchOptions, fn:(IWatchCallback|string)): EventEmitter;
watch(glob:string[], opt:IWatchOptions, fn:(IWatchCallback|string)[]): EventEmitter;
}
}