grunt-gulp

Run gulp tasks through grunt

npm install grunt-gulp
1 downloads in the last day
20 downloads in the last week
50 downloads in the last month

grunt-gulp Build Status

Run gulp tasks through declarative Grunt config

Getting Started

This plugin requires Grunt ~0.4.2

If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:

npm install grunt-gulp --save-dev

Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

grunt.loadNpmTasks('grunt-gulp');

Examples

A simple example that concats a list of javascript files in the lib/ folder to dist/bundle.js with gulp:

grunt.initConfig({
  gulp: {
    'dist/bundle.js': ['lib/*.js'],
  },
});

But you're probably using this task because you want to use gulp tasks. So lets extend the example to compile coffeescript using gulp-coffee:

grunt.initConfig({
  gulp: {
    options: {
      tasks: function(stream) {
        return stream.pipe(require('gulp-coffee')());
      },
    },
    'dist/bundle.js': ['lib/*.coffee'],
  },
});

This task supports all of the ways Grunt can be configured. Such as with expand: true; this example will compile each coffeescript file within the lib/ folder into the dist/ folder:

grunt.initConfig({
  gulp: {
    target: {
      options: {
        tasks: function(stream) { return stream.pipe(require('gulp-coffee')()); },
      },
      expand: true,
      cwd: 'lib/',
      src: '*.coffee',
      dest: 'dist/',
    },
  },
});

Or maybe you prefer a more gulp-like imperative config but still want to integrate with your Grunt build. You can bypass the Grunt config all together but still integrate:

var gulp = require('gulp');
var coffee = require('gulp-coffee');
var concat = require('gulp-concat');

grunt.initConfig({
  gulp: {
    myown: function() {
      var dest = gulp.dest('dist/');
      dest.on('end', function() {
        grunt.log.ok('All done!');
      });
      return gulp.src('lib/*.coffee')
        .pipe(coffee())
        .pipe(concat('bundle.js'))
        .pipe(dest);
    },
  },
});

Options

options.tasks

Type: Function
Default value: null

A function to pipe gulp tasks into your stream. Such as with gulp-coffee and gulp-uglify:

grunt.initConfig({
  gulp: {
    target: {
      options: {
        tasks: function(stream) {
          var coffee = require('gulp-coffee')({ bare: true }).on('error', grunt.log.error);
          var minify = require('gulp-uglify')();
          return stream.pipe(coffee).pipe(minify);
        },
      },
      src: ['lib/*.coffee'],
      dest: 'dist/bundle.min.js',
    },
  },
});

Contributing

In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.

Release History

  • 0.1.0 - initial release
npm loves you