lukeed

@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)