load-gulp-tasks

0.1.0 • Public • Published

Load gulp tasks

Load gulp tasks using glob matching

Split your tasks across multiple files.

Before

// Gulpfile.js
 
var gulp = require('gulp');
var coffee = require('gulp-coffee');
var scss = require('gulp-scss');
var scsslint = require('gulp-scss-lint');
var coffeelint = require('gulp-coffeelint');
 
var paths = {
  scripts: ['src/scripts/**/*.coffee', '!src/external/**/*.coffee'],
  styles: ['src/styles/**/*.scss']
};
 
gulp.task('lint:coffee', function() {
  return gulp.src(paths.scripts)
    .pipe(coffeelint())
    .pipe(coffeelint.reporter());
});
 
gulp.task('lint:scss', function() {
  return gulp.src(paths.styles)
    .pipe(scsslint());
});
 
gulp.task('scripts', function() {
  return gulp.src(paths.scripts)
    .pipe(coffee())
    .pipe(gulp.dest('build/js'));
});
 
gulp.task('styles', function() {
  return gulp.src(paths.styles)
    .pipe(sass())
    .pipe(gulp.dest('build/css'));
});
 
gulp.task('watch', function() {
  gulp.watch(paths.scripts, ['lint:coffee', 'scripts']);
  gulp.watch(paths.styles, ['lint:scss', 'styles']);
});
 
gulp.task('default', ['watch', 'lint:coffee', 'lint:scss', 'scripts', 'images']);

After

// tasks/lint.js
 
module.exports = function (gulp, options, plugins) {
  gulp.task('lint:coffee', function() {
    return gulp.src(options.paths.scripts)
      .pipe(plugins.coffeelint())
      .pipe(plugins.coffeelint.reporter());
  });
 
  gulp.task('lint:scss', function() {
    return gulp.src(options.paths.styles)
      .pipe(plugins.scsslint());
  });
};
// tasks/scripts.js
 
module.exports = function (gulp, options, plugins) {
  gulp.task('scripts', function() {
    return gulp.src(options.paths.scripts)
      .pipe(plugins.coffee())
      .pipe(gulp.dest('build/js'));
  });
};
// tasks/styles.js
 
module.exports = function (gulp, options, plugins) {
  gulp.task('styles', function() {
    return gulp.src(options.paths.styles)
      .pipe(plugins.sass())
      .pipe(gulp.dest('build/css'));
  });
};
// tasks/watch.js
 
module.exports = function (gulp, options, plugins) {
  gulp.task('watch', function() {
    gulp.watch(options.paths.scripts, ['lint:coffee', 'scripts']);
    gulp.watch(options.paths.images, ['lint:scss', 'images']);
  });
};
// Gulpfile.js
 
var gulp = require('gulp');
 
var paths = {
  scripts: ['src/scripts/**/*.coffee', '!src/external/**/*.coffee'],
  styles: ['src/styles/**/*.scss']
};
 
require('load-gulp-tasks')(gulp, { paths: paths });
 
gulp.task('default', ['watch', 'lint:coffee' ,'lint:scss', 'scripts', 'images']);

Install

npm install load-gulp-tasks --save-dev

Usage

// Gulpfile.js
 
var gulp = require('gulp');
 
// Override default options
var options = {
  // Set task matching pattern.
  // See `minimatch` for more details about pattern format.
  // Type: `String|Array`
  // Default: 'tasks/**/*.js'
  pattern: ['tasks/**/*.js', '!tasks/**/dev-*.js'],
 
  // Provide argument options.
  // Useful for creating conditional tasks.
  // For example, `gulp deploy --port=3000`
  // Type: `Object`
  // Default: require('yarg').argv
  argv: require('minimist')(process.argv),
 
  // Current working directory.
  // Useful e.g. for location config files,
  // like `configFile: path.join(options.cwd, 'karma.conf.js')`
  // Type: `String`
  // Default: process.cwd()
  cwd: 'app/',
 
  // Add any additional parameters
  foo: 'bar'
};
 
// Override plugins list
// Default: require('gulp-load-plugins')()
var plugins = {
  coffee: require('gulp-coffee'),
  scss: require('gulp-scss')
};
 
// Load all gulp tasks matching pattern
// and provide options and plugins to each one
require('load-gulp-tasks')(gulp, options, plugins);
 
gulp.task('default', ['watch', 'build']);

Readme

Keywords

Package Sidebar

Install

npm i load-gulp-tasks

Weekly Downloads

1,029

Version

0.1.0

License

MIT

Last publish

Collaborators

  • fortywinkz