Skip to content

mdmallardi/load-gulp-config

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

load-gulp-config

Allows you to break up your Gulpfile config by task

dependencies status devDependency status

Features

  • Each task has its own config file e.g. tasks/git.js, tasks/styles.js, tasks/scripts.js, ...
  • Easily register task aliases with aliases YAML file.

Installation

from github:

npm i -D adriancmiranda/load-gulp-config

from npmjs:

npm i -D load-gulp-config

Usage

// The streaming build system.
// @see https://www.npmjs.com/package/gulp
var gulp = require('gulp');

// Load multiple gulp tasks using globbing patterns.
// @see https://github.com/adriancmiranda/load-gulp-config
var config = require('load-gulp-config');

// Specifics of npm's package.json handling.
// @see https://docs.npmjs.com/files/package.json
var pack = config.util.readJSON('package.json');

config(gulp, {
  // path to task's files, defaults to gulp dir.
  configPath: config.util.path.join('tasks', '*.{js,json,yml,yaml}'),

  // data passed into config task.
  data:Object.assign({ someCfg:{}, anyValue:1, anyParams:[] }, pack)
});

Task file examples

Creating tasks internally:

module.exports = function(gulp, data, util, taskName){
	'use strict';

	gulp.task(taskName, ['anotherTask:method'], function(callback){
		// return gulp.src(util.path.join(data.appDirs.scripts, '**/*.js'));
	});

	gulp.task(taskName +':method', function(callback){
		// return gulp.src(util.path.join('files/', '**/*.*'));
	});
};

Returning a function:

module.exports = function(gulp, data, util){
	'use strict';

	console.log([
		'\t- someCfg:'+ data.someCfg,
		'\t- anyValue:'+ data.anyValue,
		'\t- anyParams:'+ data.anyParams,
		'\t- package.version:'+ data.version
	].join('\n'));

	return function(callback){
		// return gulp.src(util.path.join(data.someCfg.dir, '**/*.js'));
	};
};

Returning a object:

module.exports = function(gulp, data, util, taskName){
	'use strict';

	return {
		default:['test:'+ taskName, 'lint:'+ taskName, function(callback){
			// return gulp.src(...);
		}],
		cmd:function(callback){
			// ...
		}
	};
};

Aliases files (optional)

If your gulp/ folder contains an .json, .yml or .yaml file load-gulp-config will use that to define your tasks aliases (like gulp.task('default', ['task1', 'task2']);).

The following examples show the same aliases definition written in various formats

Examples

YAML file:

---
default:
  - 'build'
  - 'task2'

build:
  - 'task1:method'
  - 'task2'
  - 'task3'

JSON file:

{
  "default": ["build", "task2"],
  "build": ["task1:method", "task2", "task3"]
}

Thank's to the load-grunt-config task idea and following modules, that make this one possible.

License

MIT

About

Load multiple gulp tasks using globbing patterns

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 81.4%
  • SCSS 13.7%
  • HTML 4.9%