2.0.2 • Published 8 years ago

gulp-watchman v2.0.2

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

gulp-watchman

Simple wrapper around Facebook's Watchman.

Installation

npm install --save-dev gulp-watchman

Usage

const gulp = require('gulp');
const watchman = require('gulp-watchman');

gulp.task('build', function () {
	console.log('*Build logic*');
});

gulp.task('watchTask', function () {
	return watch('src', {
		expression: [
			'allof',
			['match', '*'],
			['type', 'f'],
		]
	}, ['build']);
});

// Also returns a stream
gulp.task('watchStream', function () {
	return watchman('src', {
		expression: [
			'allof',
			['match', '*'],
			['type', 'f'],
		]
	}).pipe(gulp.dest('build'));
});

API

watchman(dirPath, options, tasks)

Watches for changes in dirpath and returns a Readable stream of Vinyl instances per file. The dirPath is not a glob.

options.logs

Type: Boolean Default: true

Show Gulp logs or not. All of the files that are added/deleted/changed will be logged if true.

options.sinceInit

Type: Boolean Default: true

Determines whether changes on all files should be triggered as soon as the Watch starts, using since.

  • true: Change events are not triggered on initialization, only when files are changed after initialization
  • false: Triggers a change on every file that options.expression matched on initialization - Convenient when debugging expressions to see which files Watchman is listening to - Useful for triggering tasks immediately after initializing the Watchman task

options.expression

Type: Array Default: undefined

A nested-array structure of Expression Terms to filter the files Watchman should watch.

Eg. Listen to changes on all non-hidden files that are not in a node_modules directory

expression: [
	'allof',
	['match', '*'], // Non-hidden
	['type', 'f'], // Only files

	// Ignore node_modules
	['not',
		['match', 'node_modules', 'basename'],
		['match', 'node_modules/**/*', 'wholename', {includedotfiles: true}],
		['match', '*/node_modules/**/*', 'wholename', {includedotfiles: true}],
	]
]

License

MIT (c) 2016 Hiroki Osame

2.0.2

8 years ago

2.0.1

8 years ago

2.0.0

8 years ago

1.0.1

9 years ago

1.0.0

9 years ago