stylelint
Version:
A mighty, modern CSS linter.
196 lines (109 loc) • 6.23 kB
Markdown
# 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