Boilerplate to make gulp as comfy as possible.
- Task names match file paths automatically (
task1,task1/foo,task1/foo/bar, ...). - Opt in to define watch tasks automatically (
watch/task1,watch/task2, ...). - Opt in to define clean tasks automatically (
clean/task1,clean/task2, ...). - Main
watchandcleanaggregate tasks defined automatically. defaulttask that runswatch.
npm install --save-dev gulp-comfyOne line gulpfile.js:
require('gulp-comfy')();gulpfile.js:
require('gulp-comfy')({
taskPath: '/gulp/tasks', //path to the task directory
taskFileExt: 'js', //file extention of task files
taskSeparator: '/', //seperator to concatinate sub-tasks
cleanTaskName: 'clean', //name of the master-clean task
watchTaskName: 'watch', //name of the master-watch task
cleanTaskPrefix: 'clean/', //prefix of discovered cleaner tasks
watchTaskPrefix: 'watch/' //prefix of discovered watcher tasks
});Avalible Options
taskPath, String, Optional: The path of where gulp-comfy will look for Task files.default: 'gulp/tasks'.taskFileExt, String, Optional: The file extension task files need to be included. (all other files will be ignored!)default: 'js'.taskSeparator, String, Optional: The separator used to concatenated task names discovered in directoriesdefault: '/'.cleanTaskName, String, Optional: The name of the main cleaner taskdefault: 'clean'.watchTaskName, String, Optional: The name of the main watcher taskdefault: 'watch'.cleanTaskPrefix, String, Optional: The prefix for discovered clean tasks.default: 'clean/'.watchTaskPrefix, String, Optional: The prefix for discovered watch tasks.default: 'watch/'.
Define tasks in separate files under gulp/tasks. Instead of calling
gulp.task(), define the task as a module:
module.exports = {
// ... Task Properties ...
};or define multiple tasks from one module in order to run different configurations:
// file: xyz.js
module.exports = [
{
// ... Task xyz/0 ...
},
{
name: 'production'
// ... Task xyz/production ...
}
];Task Properties
fn, Function, Optional: The function to pass togulp.task().name, String, Optional: Only used when the module exports a array of tasks.deps, Array, Optional: The array of task dependencies to pass togulp.task().watch, String|Array, Optional: A glob or array of globs to pass togulp-watchextension. If specified a watch task will be defined automatically for this task with the name of the task prefixed withwatch/.watchEvents, Array, Optional: A array of file activities to watch. default:['add', 'change', 'unlink']to watch creation, changes and deletion of files. This is an option to limit a watcher to certain actions.clean, String|Array, Optional: A glob or array of globs to pass todel(). If specified a clean task will be defined automatically for this task with the name of the task prefixed withclean/.
Task Name
The name of the task is determined by the file path, relative to gulp/tasks.
For example, if my task is defined in gulp/tasks/build/scripts.js, then the
name of the task would be build/scripts. The watch and clean, if the task
opted into them, would respectively be watch/build/scripts and
clean/build/scripts.
In addition to per-task watch and clean tasks, there are several other "magic" tasks defined automatically.
default: Simply runswatch.watch: Aggregates individual watch tasks into one watch task.clean: Aggregates individual clean tasks into one clean task.
Tasks are defined automatically for any directories under gulp/tasks to
aggregate tasks inside the directory. For example, if the directory is named
task1 and it contains tasks a.js, b.js, c.js, then the following tasks
would all be created:
task1/atask1/btask1/ctask1(parent task, runs all child tasks)