@taskr/watch
Watch files & Execute specified tasks on change
After initializing a Chokidar instance, specified paths will be watched and run Tasks serially in response to adding, updating, or deleting a matching filepath.
When a Task is restarted by task.watch(), the Task's options.src will contain the full path of the file that triggered a response.
#Install
$ npm install --save-dev @taskr/watch
#Usage
module.exports = {
* lint(task, opts) {
// process single file via `opts.src` if populated
yield task.source(opts.src || "src/*.js").eslint()
},
* scripts(task, opts) {
// process single file via `opts.src` if populated
yield task.source(opts.src || "src/*.js").babel({ presets: ["es2015"] }).target("dist/js")
},
* styles(task) {
yield task.source("src/app.sass").sass().target("dist/css")
},
* default(task) {
// watch all JS files; run 'lint' then 'scripts'
yield task.watch("src/**/*.js", ["lint", "scripts"])
// watch multiple paths; only run "styles"
yield task.watch(["src/foo/*.sass", "src/*.sass"], "styles")
}
}
#API
#.watch(globs, tasks, [options])
#globs
Type: string or array
A filepath, directory path, or glob pattern. Multiple paths must use an array.
#tasks
Type: string or array
The task(s) to run when a matched file (from globs) is added, changed, or deleted. Multiple tasks must use an array and will run as a serial chain.
#options
Type: object
Default: {}
Initial options to be passed to each Task. See Taskr.start for more info.
#Support
Any issues or questions can be sent to the Taskr monorepo.
Please be sure to specify that you are using @taskr/watch.
#License
MIT © Luke Edwards
See also
taskr(3), clsx(3), @polka/cluster(3), @pwa/cli(3), uvu(3), sockette(3), klona(3), kleur(3), dequal(3), sirv-cli(3)