Skip to content

Boilerplate to make gulp as comfy as possible.

Notifications You must be signed in to change notification settings

chozilla/gulp-comfy

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gulp Comfy Build Status

Boilerplate to make gulp as comfy as possible.

Features

  • 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 watch and clean aggregate tasks defined automatically.
  • default task that runs watch.

Install

npm install --save-dev gulp-comfy

Use

One line gulpfile.js:

require('gulp-comfy')();

Optional Configuration

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 directories default: '/'.
  • cleanTaskName, String, Optional: The name of the main cleaner task default: 'clean'.
  • watchTaskName, String, Optional: The name of the main watcher task default: 'watch'.
  • cleanTaskPrefix, String, Optional: The prefix for discovered clean tasks. default: 'clean/'.
  • watchTaskPrefix, String, Optional: The prefix for discovered watch tasks. default: 'watch/'.

Tasks

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 to gulp.task().
  • name, String, Optional: Only used when the module exports a array of tasks.
  • deps, Array, Optional: The array of task dependencies to pass to gulp.task().
  • watch, String|Array, Optional: A glob or array of globs to pass to gulp-watch extension. If specified a watch task will be defined automatically for this task with the name of the task prefixed with watch/.
  • 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 to del(). If specified a clean task will be defined automatically for this task with the name of the task prefixed with clean/.

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.

Magic Tasks

In addition to per-task watch and clean tasks, there are several other "magic" tasks defined automatically.

  • default: Simply runs watch.
  • watch: Aggregates individual watch tasks into one watch task.
  • clean: Aggregates individual clean tasks into one clean task.

Parent Tasks

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/a
  • task1/b
  • task1/c
  • task1 (parent task, runs all child tasks)

About

Boilerplate to make gulp as comfy as possible.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%