gulp-gjslint

0.1.5 • Public • Published

gulp-gjslint

NPM version Build Status Code Climate Test Coverage

Lint Javascript using Google's Javascript linter

Install

$ npm install --save-dev gulp-gjslint

Usage

// See also: Gulpfile.example.js
 
var gulp = require('gulp'),
    gjslint = require('gulp-gjslint');
 
// Lint files and output results to the console
gulp.task('default', function() {
    return gulp.src('some/files/**/*.js')
        .pipe(gjslint())
        .pipe(gjslint.reporter('console'));
});
 
// Lint files, output to console and exit if
// an error is raised (useful for CI servers).
gulp.task('default', function() {
    return gulp.src('some/files/**/*.js')
        .pipe(gjslint())
        .pipe(gjslint.reporter('console'), {fail: true})
});
 
// Pass options to the linter
// See https://github.com/jmendiara/node-closure-linter-wrapper
var lintOptions = {flags: ['--nojsdoc', '--max_line_length 120']};
gulp.task('default', function() {
    return gulp.src('some/files/**/*.js')
        .pipe(gjslint(lintOptions))
        .pipe(gjslint.reporter('console'));
});

API

Options can be passed to the gulp-gjslint task, which will be passed directly to the gjslint library.

See the library documentation for details on what can be specified.

Note: The reporter option is disabled. Use the additional reporter tasks as shown in the examples above.

gjslint(options)

Run gjslint on each file.

Writes gjslint object to each Vinyl object, e.g.

{
    success: false,
    results: {
        errors: [
            {
                line: 1,
                code: 2
                description: 'Missing space before "{"'
            }
        ],
        total: 1,
        newErrors: 1,
        filesCount: 1,
        filesOK: 0
    }
}

gjslint.reporter(name, options)

Write reporter on each file that was processed by gjslint.

Reporter: Console

Output results to the console.

Example usage
gulp.task('lint', function() {
    var gjslint = require('gulp-gjslint'),
        lintOptions = {},
        reporterOptions = {};
 
    return gulp.src('./**/*.js')
        .pipe(gjslint(lintOptions))
        .pipe(gjslint.reporter('console', reporterOptions));
Default options:
{
    fail: false // If true, emits an error on failure. Useful for CI servers.
                // Note: This will cause the task to fail after the first
                // linting error.
}

Reporter: Fail

Emits an error on when processing a failed file.

Intended for use with a CI server in conjunction with another style of reporter.

Example usage
gulp.task('lint', function() {
    var gjslint = require('gulp-gjslint');
 
    return gulp.src('./**/*.js')
        .pipe(gjslint())
        .pipe(gjslint.reporter('console'))
        .pipe(gjslint.reporter('fail'));
});

Reporter: Jshint Adapter

Experimental adapter for using Jshint reporters. Only tested with jshint-stylish.

Format for usage is:

.pipe(gjslint.reporter('jshint', reporterFunction, reporterOptions));
Example usage
gulp.task('lint', function() {
    var gjslint = require('gulp-gjslint'),
        stylish = require('jshint-stylish').reporter,
        reporterOptions = {};
 
    return gulp.src('./**/*.js')
        .pipe(gjslint())
        .pipe(gjslint.reporter('jshint', stylish, reporterOptions));
});

Known issues:

  • Poor handling for when closure-linter-wrapper blows up.
  • Limitation of closure-linter-wrapper where errors are not returned when a file fails with a large number of errors. The task will still output the names of the failed file(s) and the number of errors, but not the errors themselves.

NPM

Package Sidebar

Install

npm i gulp-gjslint

Weekly Downloads

67

Version

0.1.5

License

BSD-2-Clause

Last publish

Collaborators

  • tomseldon