gulp-coffeelint

Lint your CoffeeScript using gulp and CoffeeLint

gulp-coffeelint

CoffeeLint plugin for gulp 3.

First, install gulp-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())
});

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.

Type: String

Absolute path of a json file containing options for coffeelint.

Type: Object

Options you wish to send to coffeelint. If optFile is given, this will be ignored.

Type: Boolean

Are we dealing with Literate CoffeeScript?

Type: Array[Function] Default: []

Add custom rules to coffeelint.

Adds the following properties to the file 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 = []; // `coffeelint` results, see http://www.coffeelint.org/#api 
file.coffeelint.opt = {}; // the options used by `coffeelint` 
file.coffeelint.literate = false; // you guessed it 

Assuming you would like to make use of those pretty results we have after piping through coffeelint() there are some bundled reporters at your service.

Type: String Default: 'default' Possible Values: 'default', 'fail', 'failOnWarning'

  • The 'default' reporter uses coffeelint-stylish to output a pretty report to the console. See usage example above.

  • If you would like your stream to emit an error (e.g. to fail the build on a CI server) when errors are found, use the 'fail' reporter.

  • If you want it to throw an error on both warnings and errors, use the 'failOnWarning' reporter

This example will log errors and warnings using the coffeelint-stylish reporter, then fail if coffeelint was not a success.

  .pipe(coffeelint())
  .pipe(coffeelint.reporter())
  .pipe(coffeelint.reporter('fail'))

In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using gulp and npm-test. Plus, make sure to adhere to these commit message conventions.

MIT License © Jan Raasch