grunt-scss-lint
Lint your
.scss
files
Getting Started
This plugin requires Grunt >= 0.4.0
and scss-lint >= 0.18.0
. It is recommended to use the scss_lint
gem as that is the currently maintained version.
If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
npm install grunt-scss-lint --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks('grunt-scss-lint');
Scss-lint task
Run this task with the grunt scsslint
command.
scss-lint is a Ruby gem written by The Causes Engineering Team. It is currently owned and maintained by brigade. This plugin is simply a grunt wrapper for the gem.
This task requires you to have Ruby, and scss-lint installed. If you're on OS X or Linux you probably already have Ruby installed; test with ruby -v
in your terminal. When you've confirmed you have Ruby installed, run gem update --system && gem install scss_lint
to install the scss_lint
gem.
Options
bundleExec
- Type:
Boolean
- Default:
false
You can choose to have your gems installed via bundler and if so, set this option to true
to use the local gems.
colorizeOutput
- Type:
Boolean
- Default:
true
Get some nice looking output.
For colors to work on Windows, you first need to install 2 extra gems. This is because of Rainbow, a dependency of scss-lint.
gem install windows-pr win32console
compact
- Type:
Boolean
- Default:
false
Group related linted files for more easier error review. XML output will still be default from scss-lint.
config
- Type:
String
- Default:
node_modules/grunt-scss-lint/.scss-lint.yml
.
Specify a configuration file.
gemVersion
- Type:
String
- Default:
null
.
Specify a gem version for the scsslint gem.
exclude
- Type:
String
orArray
- Default:
null
Exclude one or more files from being linted.
reporterOutput
- Type:
String
- Default:
null
The file to save the output to. If you don't want this then set the option as null
.
reporterOutputFormat
- Type:
String
- Default:
null
- Options:
txt
,xml
This will ultimately default to the file extension used for reporterOutput
if left null
emitError
- Type:
Boolean
- Default:
false
Emits a Grunt event on scss-lint error called scss-lint-error
.
emitSuccess
- Type:
Boolean
- Default:
false
Emits a Grunt event on scss-lint success called scss-lint-success
.
failOnWarning
- Type:
Boolean
- Default:
true
Disable to fail the task only on errors. You can set the severity level for individual linters in your configuration file.
force
- Type:
Boolean
- Default:
false
Set force
to true
to report scss-lint warnings and errors but not fail the task. This overrides failOnWarning
.
maxBuffer
- Type:
Number
orBoolean
- Default:
300 * 1024
Set maxBuffer
for the child_process.exec
process, if you're linting a lot of files and you're recieving no output then you can try and increase this value. Setting it to false
, 0
, NaN
or Infinite
will not return any stdout
or stderr
and the task will think that everything's fine.
Usage Examples
Example config
grunt.initConfig({
scsslint: {
allFiles: [
'test/fixtures/*.scss',
],
options: {
bundleExec: true,
config: '.scss-lint.yml',
reporterOutput: 'scss-lint-report.xml',
colorizeOutput: true
},
}
});
grunt.loadNpmTasks('grunt-scss-lint');
grunt.registerTask('default', ['scsslint']);
Exit error codes
If you're having problems with the task exiting with an error code, then have a look here: https://github.com/causes/scss-lint/blob/master/lib/scss_lint/cli.rb