CoffeeLint plugin for gulp.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
lib refactor(formatOutput): use ErrorReport#get_summary May 14, 2015
.gitignore Add coverage. Jan 16, 2014
.npmignore Empty .npmignore. Jan 15, 2014
.travis.yml chore(travis): add node v6 and node v7 to build matrix Mar 15, 2017
LICENSE chore(release): prepare v0.6.0 Dec 14, 2015
coffeelint.json chore(coffeelint-rules): add strictness May 14, 2015 chore(gulpfile): update del syntax Sep 4, 2015
package.json chore(package): update sinon to version 2.0.0 Mar 15, 2017 docs(readme): fix usage example Mar 15, 2017

gulp-coffeelint Build Status Coverage Status NPM version

Dependency Status devDependency Status Pretty Stylish

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 () {
    return gulp.src('./src/*.coffee')


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 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 = ErrorReport Object; // instance of `Coffeelint::ErrorReport` , see
file.coffeelint.opt = {}; // the options used by `coffeelint`
file.coffeelint.literate = false; // you guessed it



Type: String, Function Default: 'coffeelint-stylish'

CoffeeLint reporters


You can choose any CoffeeLint reporter when you call



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');


-- OR --


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 includes fail and failOnWarning reporters for this.

This example will log the errors using the stylish reporter, then fail if CoffeeLint was not a success.


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')


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