Skip to content

shama/grunt-gulp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

  • 1.0.1 - Fix gulp.run deprecation.
  • 1.0.0 - Update gulp dependencies and tag peerDependencies as grunt>=0.4.0
  • 0.1.0 - initial release

About

Run gulp tasks through declarative Grunt config

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •