load-gulp-config
v1.3.0
Published
Allows you to break up your Gulpfile config by task
Downloads
150
Maintainers
Readme
load-gulp-config
Allows you to break up your Gulpfile config by task
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.