Getting started with gruntjs – Running tasks

Tasks in configuration

All attributes of grunt.initConfig are valid tasks, so if your Gruntfile looks like this:

module.exports = function(grunt) {

        jshint: {
            files: ['Gruntfile.js'],


    grunt.registerTask('default', ['jshint']);

The shell command $ grunt jshint will run the jshint task.

Tasks with targets

Tasks can have different targets. Take this snippet of code for example:

        jshint: {
            gruntfile: {
                files: ['Gruntfile.js']
            project: {
                files: 'src/**/*.js'

Here, jshint can target the gruntfile or all JavaScript files of your project. If we run $ grunt jshint both targets will be used, but if we run $ grunt jshint:gruntfile the linter will only be applied to the gruntfile.

Registered tasks

The default tasks registered like this grunt.registerTask('default', ['jshint']); will run with the shell command $ grunt.

New registered tasks will run passing its name as a command line argument to grunt. For example:

grunt.registerTask('gruntfile', ['jshint:gruntfile']);

Will runt with $ grunt gruntfile.

if you want to reproduce, please indicate the source:
Getting started with gruntjs – Running tasks - CodeDay