jscs-dev / gulp-jscs

Check JavaScript code style with jscs
MIT License
312 stars 51 forks source link

gulp-jscs Build Status

Check JavaScript code style with JSCS

Issues with the output should be reported on the JSCS issue tracker.

Install

$ npm install --save-dev gulp-jscs

Usage

Reporting

const gulp = require('gulp');
const jscs = require('gulp-jscs');

gulp.task('default', () => {
    return gulp.src('src/app.js')
        .pipe(jscs())
        .pipe(jscs.reporter());
});

Fixing

const gulp = require('gulp');
const jscs = require('gulp-jscs');

gulp.task('default', () => {
    return gulp.src('src/app.js')
        .pipe(jscs({fix: true}))
        .pipe(gulp.dest('src'));
});

Reporting & fixing & failing on lint error

const gulp = require('gulp');
const jscs = require('gulp-jscs');

gulp.task('default', () => {
    return gulp.src('src/app.js')
        .pipe(jscs({fix: true}))
        .pipe(jscs.reporter())
        .pipe(jscs.reporter('fail'))
        .pipe(gulp.dest('src'));
});

Results

A jscs object will be attached to the file object.
An example with one error might look like this:

{
    success: false,  // or true if no errors
    errorCount: 1,   // number of errors in the errors array
    errors: [{       // an array of jscs error objects
        filename: 'index.js',  // basename of the file
        rule: 'requireCamelCaseOrUpperCaseIdentifiers',  // the rule which triggered the error
        message: 'All identifiers must be camelCase or UPPER_CASE',  // error message
        line: 32,  // error line number
        column: 7  // error column
    }]
};

API

JSCS config should be placed in a .jscsrc file.

jscs([options])

options

fix

Type: boolean
Default: false

Make JSCS attempt to auto-fix your files.
Be sure to pipe to gulp.dest if you use this option.

configPath

Type: string
Default: JSCS will search for the config file up to your home directory.

Set the path to the JSCS config file.
Only use this option when it can't be found automatically.

jscs.reporter([reporter])

reporter

Type: string
Default: console

See the JSCS reporter docs for supported input.

Can be used multiple times in the same pipeline.

This plugin also ships with some custom reporters:

License

MIT © Sindre Sorhus