Skip to main content

Command Line Interface (CLI)

You can use Stylelint on the command line. For example:

npx stylelint "**/*.css"

Use npx stylelint --help to print the CLI documentation.

Options#

The CLI accepts:

--allow-empty-input, --aei#

The process exits without throwing an error when glob pattern matches no files.

--cache-location#

Path to a file or directory for the cache location. More info.

--cache#

Store the results of processed files so that Stylelint only operates on the changed ones. By default, the cache is stored in ./.stylelintcache in process.cwd(). More info.

--color, --no-color#

Force enabling/disabling of color.

--config-basedir#

Absolute path to the directory that relative paths defining "extends" and "plugins" are relative to. Only necessary if these values are relative paths. More info.

--config#

Path to a JSON, YAML, or JS file that contains your configuration object. More info.

--custom-syntax#

Specify a custom syntax to use on your code. More info.

--disable-default-ignores, --di#

Disable the default ignores. Stylelint will not automatically ignore the contents of node_modules. More info.

--fix#

Automatically fix, where possible, problems reported by rules. More info.

--formatter, -f | --custom-formatter#

Specify the formatter to format your results. More info.

--ignore-disables, --id#

Ignore stylelint-disable (e.g. /* stylelint-disable block-no-empty */) comments. More info.

--ignore-path, -i#

A path to a file containing patterns describing files to ignore. The path can be absolute or relative to process.cwd(). By default, Stylelint looks for .stylelintignore in process.cwd(). More info.

--ignore-pattern, --ip#

Pattern of files to ignore (in addition to those in .stylelintignore).

--max-warnings, --mw#

Set a limit to the number of warnings accepted. More info.

--output-file, -o#

Path of file to write a report. Stylelint outputs the report to the specified filename in addition to the standard output.

--print-config#

Print the configuration for the given path. Stylelint outputs the configuration used for the file passed.

--quiet, -q#

Only register problems for rules with an "error"-level severity (ignore "warning"-level). More info.

--report-descriptionless-disables, --rdd#

Produce a report of the stylelint-disable comments without a description. More info.

--report-invalid-scope-disables, --risd#

Produce a report of the stylelint-disable comments that used for rules that don't exist within the configuration object. More info.

--report-needless-disables, --rd#

Produce a report to clean up your codebase, keeping only the stylelint-disable comments that serve a purpose. More info.

--stdin-filename#

A filename to assign the input. More info.

--stdin#

Accept stdin input even if it is empty.

--version, -v#

Show the currently installed version of Stylelint.

Usage examples#

The CLI expects input as either a file glob or process.stdin. It outputs formatted results into process.stdout.

Be sure to include quotation marks around file globs.

Example A - recursive#

Recursively linting all .css files in the foo directory:

stylelint "foo/**/*.css"

Example B - multiple file extensions#

Linting all .css, .scss, and .sass files:

stylelint "**/*.{css,scss,sass}"

Example C - stdin#

Linting stdin:

echo "a { color: pink; }" | stylelint

Example D - negation#

Linting all .css files except those within docker subfolders, using negation in the input glob:

stylelint "**/*.css" "!**/docker/**"

Example E - caching#

Caching processed .scss files foo directory:

stylelint "foo/**/*.scss" --cache --cache-location "/Users/user/.stylelintcache/"

Example F - writing a report#

Linting all .css files in the foo directory, then writing the output to myTestReport.txt:

stylelint "foo/*.css" --output-file myTestReport.txt

Example G - specifying a config#

Using bar/mySpecialConfig.json as config to lint all .css files in the foo directory and any of its subdirectories:

stylelint "foo/**/*.css" --config bar/mySpecialConfig.json

Example H - using a custom syntax#

Recursively linting all .css files in the foo directory using a custom syntax:

stylelint "foo/**/*.css" --customSyntax path/to/my-custom-syntax.js

Example I - print on success#

Ensure output on successful runs:

stylelint -f verbose "foo/**/*.css"

Exit codes#

The CLI can exit the process with the following exit codes:

  • 1 - something unknown went wrong
  • 2 - there was at least one rule problem or CLI flag error
  • 78 - there was some problem with the configuration file