Skip to content

Instantly share code, notes, and snippets.

@svileng
Forked from rudijs/gulpfile.js
Last active August 29, 2015 14:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save svileng/71374d317c52f203c05a to your computer and use it in GitHub Desktop.
Save svileng/71374d317c52f203c05a to your computer and use it in GitHub Desktop.
var gulp = require('gulp'),
watch = require('gulp-watch'),
// This will keeps pipes working after error event
plumber = require('gulp-plumber'),
// linting
jshint = require('gulp-jshint'),
stylish = require('jshint-stylish'),
// Used in linting custom reporter
map = require('map-stream'),
events = require('events'),
notify = require('gulp-notify'),
emmitter = new events.EventEmitter(),
path = require('path');
// Custom linting reporter used for error notify
var jsHintErrorReporter = map(function (file, cb) {
if (!file.jshint.success) {
file.jshint.results.forEach(function (err) {
if (err) {
//console.log(err);
// Error message
var msg = [
path.basename(file.path),
'Line: ' + err.error.line,
'Reason: ' + err.error.reason
];
// Emit this error event
emmitter.emit('error', new Error(msg.join('\n')));
}
});
}
cb(null, file);
});
gulp.task('lint', function () {
gulp.src([
'app/components/**/*.js',
'!app/components/app/translations.js'
])
.pipe(watch())
.pipe(plumber())
.pipe(jshint('.jshintrc', {fail: true}))
.pipe(jshint.reporter(stylish)) // Console output
.pipe(jsHintErrorReporter) // If error pop up a notify alert
.on('error', notify.onError(function (error) {
return error.message;
}));
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment