node package manager
Orgs are free. Discover, share, and reuse code in your team. Create a free org »


gulp-recipe-loader Dependency Status


Automatic gulp recipe loading and task registration

example gulpfile

// deps 
var gulp = require('gulp'),
    requireDir = require('require-dir');
// read config files from ./gulp-config directory 
var config = requireDir('gulp-config');
// load all recipes 
var $ = require('gulp-recipe-loader')(gulp, config);
// mark build task as default 
$.gulp.task('default', ['build']);

Sources configuration syntax

First of all, define your defualt base path. It has to be a real path. Default value is '.', but most probably wou will need to change it. All paths are relative to gulpfile location.

sources.defaultBase = 'app/';

There are few ways to define source. The most basic one is just a string with glob path.

sources.css = 'app/styles/*.css';

You can also provide an array of globs or other sources.

sources.bowerScripts = [

If you need to change the base for specific set of paths, you can use object notation.

sources.specialFiles = {
    files: 'special/**/*', // the 'files' can be any valid source. A glob or array of globs will work. 
    base: 'special/'

Sources can be easily composited. You can use any valid source inside the other.

sources.devAssets = [

Important note: If you nest other sources inside source object, the properties of the outer object will be applied.

sources.myFiles = {
    files: 'defs/scene-*.xml',
    base: 'defs/'
// this is BAD 
sources.moreFiles = {
    files: [sources.assets, 'more/*.files'],
    base: 'more/'

The actual content of sources.moreFiles will be identical to this:

// actual output of that BAD thing 
sources.moreFiles = {
    files: ['defs/scene-*.xml', 'more/*.files'],
    base: 'hello/' // note mismatched base for first file definition 

What you probably wanted to do instead is

// this is GOOD 
sources.moreFiles = [
    sources.myFiles, // the base is preserved 
        files: 'more/*.files',
        base: 'more/'