Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including grunt-gulp with all npm packages installed. Try it out:

grunt-gulp lists no main file and has no index.js, so it can't be directly required. If this is a mistake, please let us know. It may however contain internal files that you can require manually:

require("grunt/package.json"); // grunt is a peer dependency. // require("grunt-gulp/[??]")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

grunt-gulp v1.0.2

Run gulp tasks through grunt

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
RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free