Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

NPM version NPM Downloads


Grunt plugin for running stylelint

Getting started

If this is the first time you're using Grunt, the getting started guide will show you how to get up and running.

Once you have that installed, with a Gruntfile set for your code, you can install the plugin with:

npm install grunt-stylelint stylelint --save-dev

Note that this installs both grunt-stylelint and the stylelint tool itself, which is a peer dependency. If you do not explicitly depend on stylelint in your package.json file and do not have it available, grunt-stylelint will not work. Modern versions of npm will warn you of such unmet peer dependencies.

In your Gruntfile, add the line:

grunt.loadNpmTasks( 'grunt-stylelint' );

Running and configuring stylelint task

Run this task with the grunt stylelint command.

You can specify the targets and options for the task using the normal Grunt configuration – see Grunt's guide on how to configure tasks in general.

For more explanations of the lint errors stylelint will throw at you please visit

Usage examples

Example simple config

In this example, running grunt stylelint:all (or grunt stylelint because stylelint is a multi task) will lint the project's CSS and Sass files in the css and sass directories and their subdirectories, using the default stylelint options or the options specified in the .stylelintrc in the root of the project. For an example config see

// Project configuration.
  stylelint: {
    all: ['css/**/*.css', 'sass/**/*.scss']

Example full config

A full set of config with default options would be:

// Project configuration.
grunt.initConfig( {
  stylelint: {
    options: {
      configFile: '.stylelintrc',
      formatter: 'string',
      ignoreDisables: false,
      failOnError: true,
      outputFile: '',
      reportNeedlessDisables: false,
      fix: false,
      syntax: ''
    src: [


The options object is passed through to stylelint. Options you may wish to set are:


Type: function or string Default value: "string" Values: "string"|"verbose"|"json"

In which output format would you like results. If grunt is run with --verbose and this is not explicitly set, it will act as though you passed in "verbose".


Type: boolean Default value: false

Whether to ignore inline comments that disable stylelint.


Type: string

Output the report to a file.


Type: boolean Default value: false

Whether to ignore inline comments that disable stylelint and report which ones did not block a lint warning.


Type: boolean Default value: true

Whether to fail if stylelint detects an error.


Type: boolean Default value: false

Automatically fix, where possible, violations reported by rules. If grunt is run with --fix and this is not explicitly set, it will be set to true.