| # Command Line Interface (CLI) |
| |
| You can use stylelint on the command line. For example: |
| |
| ```shell |
| npx stylelint "**/*.css" |
| ``` |
| |
| Use `npx stylelint --help` to print the CLI documentation. |
| |
| ## Options |
| |
| In addition to the [standard options](options.md), 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 about this option in [standard options](options.md#cacheLocation). |
| |
| ### `--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 about this option in [standard options](options.md#cache). |
| |
| ### `--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 about this option in [standard options](options.md#configBasedir). |
| |
| ### `--config` |
| |
| Path to a JSON, YAML, or JS file that contains your [configuration object](../configure.md). More info about this option in [standard options](options.md#configFile). |
| |
| ### `--custom-syntax` |
| |
| Specify a custom syntax to use on your code. Use this option if you want to force a specific syntax that's not already built into stylelint. More info about this option in [standard options](options.md#customSyntax). |
| |
| ### `--disable-default-ignores, --di` |
| |
| Disable the default ignores. stylelint will not automatically ignore the contents of `node_modules`. More info about this option in [standard options](options.md#disableDefaultIgnores). |
| |
| ### `--fix` |
| |
| Automatically fix, where possible, violations reported by rules. More info about this option in [standard options](options.md#fix). |
| |
| ### `--formatter, -f` | `--custom-formatter` |
| |
| Specify the formatter to format your results. More info about this option in [standard options](options.md#formatter). |
| |
| ### `--ignore-disables, --id` |
| |
| Ignore `styleline-disable` (e.g. `/* stylelint-disable block-no-empty */`) comments. More info about this option in [standard options](options.md#ignoreDisables). |
| |
| ### `--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 about this option in [standard options](options.md#ignorePath). |
| |
| ### `--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 about this option in [standard options](options.md#maxWarnings). |
| |
| ### `--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 violations for rules with an "error"-level severity (ignore "warning"-level). |
| |
| ### `--report-descriptionless-disables, --rdd` |
| |
| Produce a report of the `stylelint-disable` comments without a description. More info about this option in [standard options](options.md#reportDescriptionlessDisables). |
| |
| ### `--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 about this option in [standard options](options.md#reportInvalidScopeDisables). |
| |
| ### `--report-needless-disables, --rd` |
| |
| Produce a report to clean up your codebase, keeping only the `stylelint-disable` comments that serve a purpose. More info about this option in [standard options](options.md#reportNeedlessDisables). |
| |
| ### `--stdin-filename` |
| |
| A filename to assign the input. More info about this option in [standard options](options.md#codeFilename). |
| |
| ### `--stdin` |
| |
| Accept stdin input even if it is empty. |
| |
| ### `--syntax, -s` |
| |
| Specify a syntax. More info about this option in [standard options](options.md#syntax). |
| |
| ### `--version, -v` |
| |
| Show the currently installed version of stylelint. |
| |
| ## Usage examples |
| |
| The CLI expects input as either a [file glob](https://github.com/sindresorhus/globby) 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: |
| |
| ```shell |
| stylelint "foo/**/*.css" |
| ``` |
| |
| ### Example B - multiple file extensions |
| |
| Linting all `.css`, `.scss`, and `.sass` files: |
| |
| ```shell |
| stylelint "**/*.{css,scss,sass}" |
| ``` |
| |
| ### Example C - stdin |
| |
| Linting `stdin`: |
| |
| ```shell |
| echo "a { color: pink; }" | stylelint |
| ``` |
| |
| ### Example D - negation |
| |
| Linting all `.css` files except those within `docker` subfolders, using negation in the input glob: |
| |
| ```shell |
| stylelint "**/*.css" "!**/docker/**" |
| ``` |
| |
| ### Example E - caching |
| |
| Caching processed `.scss` files `foo` directory: |
| |
| ```shell |
| 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`: |
| |
| ```shell |
| 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: |
| |
| ```shell |
| 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: |
| |
| ```shell |
| stylelint "foo/**/*.css" --customSyntax path/to/my-custom-syntax.js |
| ``` |
| |
| ### Example I - print on success |
| |
| Ensure output on successful runs: |
| |
| ```shell |
| 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 violation or CLI flag error |
| - `78` - there was some problem with the configuration file |