jsonlint plugin for gulp
Usage
First, install gulp-jsonlint
as a development dependency:
npm install --save-dev gulp-jsonlint
Then, add it to your gulpfile.js
:
var jsonlint = require("gulp-jsonlint");
gulp.src("./src/*.json")
.pipe(jsonlint())
.pipe(jsonlint.reporter());
Using a custom reporter:
var jsonlint = require('gulp-jsonlint');
var log = require('fancy-log');
var myCustomReporter = function (file) {
log('File ' + file.path + ' is not valid JSON.');
};
gulp.src('./src/*.json')
.pipe(jsonlint())
.pipe(jsonlint.reporter(myCustomReporter));
API
jsonlint(options)
For now, options
are not supported yet.
jsonlint.reporter(customReporter)
customReporter(file)
Type: function
You can pass a custom reporter function. If ommited then the default reporter will be used.
The customReporter
function will be called with the argument file
.
file
Type: object
This argument has the attribute jsonlint
wich is an object that contains a success
boolean attribute. If it's false you also have a message
attribute containing the jsonlint error message.
jsonlint.failOnError()
Stop a task/stream if an jsonlint error has been reported for any file.
// Cause the stream to stop(/fail) before copying an invalid JS file to the output directory
gulp.src('**/*.js')
.pipe(jsonlint())
.pipe(jsonlint.failOnError())
.pipe(gulp.dest('../output'));
jsonlint.failAfterError()
Stop a task/stream if an jsonlint error has been reported for any file, but wait for all of them to be processed first.