Command Line Interface (CLI)
You can use Stylelint on the command line. For example:
npx stylelint "**/*.css"
You should include quotation marks around file globs.
If you are using npm scripts, you'll need to escape the quotes:
{
"scripts": {
"lint": "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. More info.
--cache-location
Path to a file or directory for the cache location. More info.
--cache-strategy
Strategy for the cache to use for detecting changed files. Can be either "metadata" or "content". 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", "plugins", and "customSyntax" are relative to. Only necessary if these values are relative paths. More info.
--config, -c
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.
--globbyOptions, --go
Options in JSON format passed to globby. More info.
--ignore-disables, --id
Ignore stylelint-disable
(e.g. /* stylelint-disable block-no-empty */
) comments. More info.
--ignore-path, -i
Path to a file containing patterns that describe files to ignore. The path can be absolute or relative to process.cwd()
. You can repeat the option to provide multiple paths. 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 process.stderr
.
--print-config
Print the configuration for the given input path. Globs are unsupported.
--quiet, -q
Only register problems for rules with an "error"-level severity (ignore "warning"-level). More info.
--quiet-deprecation-warnings
Ignore deprecation warnings. 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.
--report-unscoped-disables, --rud
Produce a report of the configuration comments that are not scoped to one or more rules. More info.
--stdin-filename
A filename to assign the input. More info.
--stdin
Accept stdin input even if it is empty.
--validate, --no-validate
Force enable/disable the validation of the rules' options. More info.
--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.stderr
.
You should 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" --custom-syntax path/to/my-custom-syntax.js
Example I - print on success
Ensure output on successful runs:
stylelint -f verbose "foo/**/*.css"
Example J - print a config
Print a configuration used for the given input file:
stylelint test.css --print-config
Example K - piping a report to another command
Use a report as input for another command through piping:
stylelint -f json "*.css" 2>&1 | jq '[.[] | .warnings | length] | add'
Exit codes
The CLI can exit the process with the following exit codes:
1
- fatal error2
- lint problem64
- invalid CLI usage78
- invalid configuration file