This version of
stylelint-webpack-plugin
only works with webpack 5. For webpack 4, see the 2.x branch.
This plugin uses stylelint
, which helps you avoid errors and enforce conventions in your styles.
To begin, you'll need to install stylelint-webpack-plugin
:
npm install stylelint-webpack-plugin --save-dev
or
yarn add -D stylelint-webpack-plugin
or
pnpm add -D stylelint-webpack-plugin
Note
You also need to install stylelint >= 13
from npm, if you haven't already:
npm install stylelint --save-dev
or
yarn add -D stylelint
or
pnpm add -D stylelint
Note
If you are using Stylelint 13 rather than 14+, you might also need to install @types/stylelint
as a dev dependency if you encounter Stylelint-related type errors.
Then add the plugin to your webpack configuration. For example:
const StylelintPlugin = require('stylelint-webpack-plugin');
module.exports = {
// ...
plugins: [new StylelintPlugin(options)],
// ...
};
See stylelint's options for the complete list of available options . These options are passed directly to stylelint
.
- Type:
type cache = boolean;
- Default:
true
The cache is enabled by default to decrease execution time.
- Type:
type cacheLocation = string;
- Default:
node_modules/.cache/stylelint-webpack-plugin/.stylelintcache
Specify the path to the cache location. This can be a file or a directory.
- Type:
type context = string;
- Default:
undefined
Specify the config file location to be used by stylelint
.
Note:
By default this is handled by
stylelint
.
- Type:
type context = string;
- Default:
compiler.context
A string indicating the root of your files.
- Type:
type exclude = string | Array<string>;
- Default:
['node_modules', compiler.options.output.path]
Specify the files and/or directories to exclude. Must be relative to options.context
.
- Type:
type extensions = string | Array<string>;
- Default:
['css', 'scss', 'sass']
Specify the extensions that should be checked.
- Type:
type files = string | Array<string>;
- Default:
null
Specify directories, files, or globs. Must be relative to options.context
. Directories are traversed recursively, looking for files matching options.extensions
. File and glob patterns ignore options.extensions
.
- Type:
type fix = boolean;
- Default:
false
If true
, stylelint
will fix as many errors as possible. The fixes are made to the actual source files. All unfixed errors will be reported. See Autofixing errors docs.
- Type:
type formatter = string | (
results: Array<import('stylelint').LintResult>
) => string
- Default:
'string'
Specify the formatter you would like to use to format your results. See the formatter option.
- Type:
type lintDirtyModulesOnly = boolean;
- Default:
false
Lint only changed files; skip linting on start.
- Type:
type stylelintPath = string;
- Default:
stylelint
Path to stylelint
instance that will be used for linting.
- Type:
type threads = boolean | number;
- Default:
false
Set to true
for an auto-selected pool size based on number of CPUs. Set to a number greater than 1 to set an explicit pool size.
Set to false
, 1, or less to disable and run only in main process.
By default, the plugin will automatically adjust error reporting depending on the number of Stylelint errors/warnings.
You can still force this behavior by using the emitError
or emitWarning
options:
- Type:
type emitError = boolean;
- Default:
true
The errors found will always be emitted. To disable, set to false
.
- Type:
type emitWarning = boolean;
- Default:
true
The warnings found will always be emitted. To disable, set to false
.
- Type:
type failOnError = boolean;
- Default:
true
Will cause the module build to fail if there are any errors. To disable, set to false
.
- Type:
type failOnWarning = boolean;
- Default:
false
Will cause the module build to fail if there are any warnings, when set to true
.
- Type:
type quiet = boolean;
- Default:
false
Will process and report errors only, and ignore warnings, when set to true
.
- Type:
type outputReport =
| boolean
| {
filePath?: string | undefined;
formatter?:
| (
| string
| ((results: Array<import('stylelint').LintResult>) => string)
)
| undefined;
};
- Default:
false
Writes the output of the errors to a file - for example, a json
file for use for reporting.
The filePath
is relative to the webpack config: output.path
.
You can pass in a different formatter for the output file. If none is passed in the default/configured formatter will be used.
{
filePath: 'path/to/file';
formatter: 'json';
}
We welcome all contributions! If you're new here, please take a moment to review our contributing guidelines before submitting issues or pull requests.