Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including @infowatch/stylelint-webpack-plugin with all npm packages installed. Try it out:

require("stylelint/package.json"); // stylelint is a peer dependency. require("webpack/package.json"); // webpack is a peer dependency. var stylelintWebpackPlugin = require("@infowatch/stylelint-webpack-plugin")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

@infowatch/stylelint-webpack-plugin v0.10.3

stylelint plugin for webpack

Stylelint Plugin for Webpack v[1, 3]

Greenkeeper badge npm version Build Status Coverage Status js-semistandard-style

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 stylelint-webpack-plugin
# OR
yarn add --dev stylelint 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: (undefined), handled by stylelint's cosmiconfig module.
  • context: String indicating the root of your SCSS files. Default: inherits from webpack config.
  • emitErrors: Pipe stylelint 'error' severity messages to the error message handler in webpack's current instance. Note when this property is disabled (false) all stylelint messages are piped to webpack's warning message handler. Default: true
  • failOnError: Throw a fatal error in the global build process (e.g. kill your entire build process on any stylelint 'error' severity message). Default: false
  • files: Change the glob pattern for finding files. Must be relative to options.context. Default: ['**/*.s?(a|c)ss']
  • formatter: Use a custom formatter to print errors to the console. Default: require('stylelint').formatters.string
  • lintDirtyModulesOnly: Lint only changed files, skip lint on start. Default: false
  • syntax: e.g. use 'scss' to lint .scss files. Default: undefined


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.

Thanks to Javier (@vieron) for originally publishing this plugin, and passing the torch to our growing list of contributors! :smile:


RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free