Why you might want to use this plugin instead of stylelint-loader
stylelint-loader lints the files you require
or the ones you define as an entry
in your webpack config. But @imports
in those files are not followed, so just the main file (for each require/entry) is linted.
Instead, with stylelint-webpack-plugin you just define file globs, like stylelint does by default. So you get all your files linted.
npm install --save-dev stylelint-webpack-plugin
# OR
yarn add --dev stylelint-webpack-plugin
In your webpack configuration
var StyleLintPlugin = require('stylelint-webpack-plugin');
module.exports = {
// ...
plugins: [
new StyleLintPlugin(options),
],
// ...
}
See stylelint options for the complete list of options. This object is passed straight to the stylelint.lint
function and has the following defaults:
configFile
: You can change the config file location. Default: (.stylelintrc
)context
: String indicating the root of your SCSS files. Default: inherits from webpack config.files
: Change the glob pattern for finding files. Default: (['**/*.s?(a|c)ss']
)syntax
: Use'scss'
to lint .scss files. Default (undefined
)formatter
: Use a custom formatter to print errors to the console. Default: (require('stylelint').formatters.string
)failOnError
: Have Webpack's build process die on error. Default:false
quiet
: Don't print stylelint output to the console. Default:false
The plugin will dump full reporting of errors.
Set failOnError
to true if you want webpack build process breaking with any stylelint error.
You can use the quiet
option to not print stylelint output to the console.
This project is basically a modified version of sasslint-webpack-plugin
. It changed considerably
since stylelint is async, and its Node API changes compared with sasslint.