🏳️Grunt: The JavaScript Task Runner

Website favicongruntjs.com

[V1.6.1 is the current version, and previous versions are not supported. Upgrade to the latest version or consider other support options.](support)

[](/)

*   [Getting Started](/getting-started)

*   [Configuring Tasks](/configuring-tasks)

*   [Plugins](/plugins)

*   [Documentation](/documentation)

*   [Support](/support)

GruntThe JavaScript Task Runner

Why use a task runner?

----------------------

In one word: automation. The less work you have to do when performing repetitive tasks like minification, compilation, unit testing, linting, etc, the easier your job becomes. After you've configured it through a [Gruntfile](/sample-gruntfile), a task runner can do most of that mundane work for you—and your team—with basically zero effort.

Why use Grunt?

--------------

The Grunt ecosystem is huge and it's growing every day. With literally hundreds of plugins to choose from, you can use Grunt to automate just about anything with a minimum of effort. If someone hasn't already built what you need, authoring and publishing your own Grunt plugin to npm is a breeze. See how to [get started](/getting-started).

Available Grunt plugins

-----------------------

Many of the tasks you need are already available as Grunt Plugins, and new plugins are published every day. While the [plugin listing](/plugins) is more complete, here's a few you may have heard of.

[](https://www.npmjs.com/package/grunt-contrib-coffee)[](https://www.npmjs.com/package/grunt-contrib-handlebars)[](https://www.npmjs.com/package/grunt-contrib-jade)[](https://www.npmjs.com/package/grunt-contrib-jshint)[](https://www.npmjs.com/package/grunt-contrib-less)[](https://www.npmjs.com/package/grunt-contrib-requirejs)[](https://www.npmjs.com/package/grunt-contrib-sass)[](https://www.npmjs.com/package/grunt-contrib-stylus)

Here's a preview!

-----------------

While installing grunt is simple, it's slightly more involved to get it running on your project. To see what your effort will win you, take a look at this example output from running Grunt in a [sample project](https://github.com/cowboy/jquery-tiny-pubsub).

grunt

Running "jshint:gruntfile" (jshint) task

\>> 1 file lint free.

Running "jshint:src" (jshint) task

\>> 1 file lint free.

Running "jshint:test" (jshint) task

\>> 1 file lint free.

Running "qunit:files" (qunit) task

Testing test/tiny-pubsub.html....OK

\>> 4 assertions passed (23ms)

Running "clean:files" (clean) task

Cleaning "dist"...OK

Running "concat:dist" (concat) task

File "dist/ba-tiny-pubsub.js" created.

Running "uglify:dist" (uglify) task

File "dist/ba-tiny-pubsub.min.js" created.

Uncompressed size: 389 bytes.

Compressed size: 119 bytes gzipped (185 bytes minified).

Done.

Who uses Grunt?

---------------

These are just a few companies and projects that are using Grunt.[See more here.](/who-uses-grunt)

[](/who-uses-grunt)[](/who-uses-grunt)[](/who-uses-grunt)[](/who-uses-grunt)[](/who-uses-grunt)[](/who-uses-grunt)[](/who-uses-grunt)[](/who-uses-grunt)

How do I get started?

---------------------

Read the [Getting Started](/getting-started) guide for instructions on using Grunt in your projects. Once you've done that, check out a [Sample Gruntfile](/sample-gruntfile) and learn more about [Configuring Tasks](/configuring-tasks).

* * *

Grunt is an OpenJS Foundation project.

[](https://openjsf.org/projects/)

### Latest Version

*   Stable: [v1.6.1](https://www.npmjs.org/package/grunt) (npm)

*   Development: [HEAD](https://github.com/gruntjs/grunt) (GitHub)

### Latest News

*   [Grunt 1.4.0 releasedApril 22, 2021](/blog/2021-04-22-grunt-1.4.0-released)

*   [Grunt 1.2.0 releasedJuly 03, 2020](/blog/2020-07-03-grunt-1.2.0-released)

*   [Grunt 1.1.0 releasedMarch 16, 2020](/blog/2020-03-16-grunt-1.1.0-released)

### Getting Started

Read the [Getting Started](/getting-started) guide for instructions on using Grunt in your projects. Once you've done that, check out a [Sample Gruntfile](/sample-gruntfile) and learn more about [Configuring Tasks](/configuring-tasks).

[](https://github.com/gruntjs/ "Grunt on GitHub")[](https://twitter.com/gruntjs/ "Grunt on Twitter")[](/rss "Grunt blog RSS feed")