gulp-coffeelint !Build Statustravis-imagetravis-url !Coverage Statuscoveralls-imagecoveralls-url !NPM versionnpm-imagenpm-url
!Dependency Statusdepstat-imagedepstat-url !devDependency Statusdevdepstat-imagedevdepstat-url CoffeeLint plugin for gulpgulp 3.
Usage
First, installgulp-coffeelint
as a development dependency:npm install --save-dev gulp-coffeelint
Then, add it to your
gulpfile.js
:var gulp = require('gulp');
var coffeelint = require('gulp-coffeelint');
gulp.task('lint', function () {
gulp.src('./src/*.coffee')
.pipe(coffeelint())
.pipe(coffeelint.reporter())
});
API
coffeelint([optFile,] [opt,] [literate,] [rules])
All arguments are optional. By default gulp-coffeelint
will walk up the directory tree looking for a coffeelint.json
(per file, i.e. dirname) or a package.json
that has a coffeelintConfig
object (as the cli does). Also, .litcoffee
and .coffee.md
files will be treated as Literate CoffeeScript.optFile
Type:String
Absolute path of a
json
file containing optionscoffeelint-options for coffeelint
.opt
Type:Object
Optionscoffeelint-options you wish to send to
coffeelint
. If optFile
is given, this will be ignored.literate
Type:Boolean
Are we dealing with Literate CoffeeScript?
rules
Type:Array[Function]
Default: []
Add custom rules to
coffeelint
.Results
Adds the following properties to thefile
object:
file.coffeelint.success = true; // if no errors were found, false otherwise
file.coffeelint.errorCount = 0; // number of errors returned by `coffeelint`
file.coffeelint.warningCount = 0; // number of warnings returned by `coffeelint`
file.coffeelint.results = ErrorReport Object; // instance of `Coffeelint::ErrorReport` , see https://github.com/clutchski/coffeelint/blob/master/src/error_report.coffee
file.coffeelint.opt = {}; // the options used by `coffeelint`
file.coffeelint.literate = false; // you guessed it
Reporters
name
Type:String
, Function
Default: 'coffeelint-stylish'
CoffeeLint reporters
Built-in
You can choose any CoffeeLint reporter when you callgulp.src('./src/*.coffee')
.pipe(coffeelint())
.pipe(coffeelint.reporter('csv'))
External
Let's use coffeelint-stylish as an example. External modules can be referenced either as the reporter's constructor function or as its module name.var stylish = require('coffeelint-stylish');
gulp.src('./src/*.coffee')
.pipe(coffeelint())
.pipe(coffeelint.reporter(stylish))
-- OR --
gulp.src('./src/*.coffee')
.pipe(coffeelint())
.pipe(coffeelint.reporter('coffeelint-stylish'))
Any module following the CoffeeLint Reporter module format should work. These modules have a constructor accepting a
CoffeeLint::ErrorReport Object
, and provide a publish
function.Fail and FailOnWarning Reporters
Do you want the task to fail when a CoffeeLint error or warning happens? gulp-coffeelint includesfail
and failOnWarning
reporters for this.This example will log the errors using the stylish reporter, then fail if CoffeeLint was not a success.
gulp.src('./src/*.coffee')
.pipe(coffeelint())
.pipe(coffeelint.reporter('coffeelint-stylish'))
.pipe(coffeelint.reporter('fail'))
Custom Reporters
Specify your own downstream Reporter for CoffeeLint results.var coffeelint = require('gulp-coffeelint');
var myReporter = (function() {
function MyReporter(errorReport) {
this.errorReport = errorReport;
}
MyReporter.prototype.publish = function() {
var hasError = this.errorReport.hasError();
if (hasError) {
return console.log('Oh no!');
}
return console.log('Oh yeah!');
}
return MyReporter;
})();
gulp.task('lint', function() {
return gulp.src('./src/*.coffee')
.pipe(coffeelint())
.pipe(coffeelint.reporter(myReporter));
});