UNPKG

sass-lint-webpack

Version:

Sass-lint plugin for Webpack 4+

38 lines (31 loc) 1.1 kB
const chalk = require('chalk') const sassLint = require('sass-lint') class SassLintWebpackPlugin { constructor(options = {}) { this.options = options } apply(compiler) { compiler.hooks.compilation.tap('SassLintWebpackPlugin', (compilation) => { if (compilation.name) { return } compilation.hooks.seal.tap('SassLintWebpackPlugin', () => { const { files, options = {}, configPath } = this.options const results = sassLint.lintFiles(files, options, configPath) results.forEach((result) => { result.messages.forEach((message) => { const error = [ chalk.underline(`${result.filePath}:${message.line}:${message.column}`), chalk.white(message.message), chalk.gray(`[${message.ruleId}]`), ].join(' ') if (message.severity === 1) { compilation.warnings.push(new Error(error)) } else { compilation.errors.push(new Error(error)) } }) }) }) }) } } module.exports = SassLintWebpackPlugin