Commit 2b1a5a94 authored by Vadym Gidulian's avatar Vadym Gidulian

Closed #6 (Add `failSafe` check to other tasks)

parent 6e0101c7
...@@ -12,7 +12,7 @@ var streamify = require('gulp-streamify'); ...@@ -12,7 +12,7 @@ var streamify = require('gulp-streamify');
var uglify = require('gulp-uglify'); var uglify = require('gulp-uglify');
var gutil = require('gulp-util'); var gutil = require('gulp-util');
var failSafe = false; var failsafe = false;
function isLocal() { function isLocal() {
return !gutil.env.env; return !gutil.env.env;
...@@ -27,9 +27,14 @@ function isProduction() { ...@@ -27,9 +27,14 @@ function isProduction() {
return gutil.env.env === 'production'; return gutil.env.env === 'production';
} }
function shallow(done) { function failsafePipe(pipe, callback) {
return failsafe
? pipe.on('error', shallow(callback))
: pipe;
}
function shallow(callback) {
return function (error) { return function (error) {
done(error); callback(error);
}; };
} }
...@@ -94,7 +99,7 @@ gulp.task('images', ['img-copy']); ...@@ -94,7 +99,7 @@ gulp.task('images', ['img-copy']);
// Markup // Markup
gulp.task('html-min', function () { gulp.task('html-min', function (callback) {
return gulp.src(paths.html) return gulp.src(paths.html)
.pipe(isLocal() || isTesting() .pipe(isLocal() || isTesting()
? inject.replace('<!--\\s*?weinre\\s*?-->', '<script async src="http://weinre.dev.gvia.group/target/target-script-min.js"></script>') ? inject.replace('<!--\\s*?weinre\\s*?-->', '<script async src="http://weinre.dev.gvia.group/target/target-script-min.js"></script>')
...@@ -105,13 +110,13 @@ gulp.task('html-min', function () { ...@@ -105,13 +110,13 @@ gulp.task('html-min', function () {
.pipe(isProduction() .pipe(isProduction()
? inject.replace('<!--\\s*?weinre\\s*?-->', '') ? inject.replace('<!--\\s*?weinre\\s*?-->', '')
: gutil.noop()) : gutil.noop())
.pipe(htmlMin({ .pipe(failsafePipe(htmlMin({
collapseWhitespace: true, collapseWhitespace: true,
conservativeCollapse: true conservativeCollapse: true
})) }), callback))
.pipe(gulp.dest(paths.htmlOut)); .pipe(gulp.dest(paths.htmlOut));
}); });
gulp.task('pug-compile', function () { gulp.task('pug-compile', function (callback) {
return gulp.src(paths.pug) return gulp.src(paths.pug)
.pipe(isLocal() || isTesting() .pipe(isLocal() || isTesting()
? inject.replace('//-?\\s*?weinre', 'script(async src="http://weinre.dev.gvia.group/target/target-script-min.js")') ? inject.replace('//-?\\s*?weinre', 'script(async src="http://weinre.dev.gvia.group/target/target-script-min.js")')
...@@ -122,30 +127,30 @@ gulp.task('pug-compile', function () { ...@@ -122,30 +127,30 @@ gulp.task('pug-compile', function () {
.pipe(isProduction() .pipe(isProduction()
? inject.replace('//-?\\s*?weinre', '') ? inject.replace('//-?\\s*?weinre', '')
: gutil.noop()) : gutil.noop())
.pipe(pug()) .pipe(failsafePipe(pug(), callback))
.pipe(gulp.dest(paths.pugOut)); .pipe(gulp.dest(paths.pugOut));
}); });
gulp.task('markup', ['html-min', 'pug-compile']); gulp.task('markup', ['html-min', 'pug-compile']);
// Scripts // Scripts
gulp.task('js-browserify', function (done) { gulp.task('js-browserify', function (callback) {
return browserify(paths.js, { return failsafePipe(browserify(paths.js, {
debug: isLocal() debug: isLocal()
}) })
.bundle() .bundle(), callback)
.pipe(source('script.all.min.js')) .pipe(source('script.all.min.js'))
.pipe(!isLocal() ? streamify(uglify().on(failSafe ? 'error' : 'none', shallow(done))) : gutil.noop()) .pipe(!isLocal() ? streamify(failsafePipe(uglify(), callback)) : gutil.noop())
.pipe(gulp.dest(paths.jsOut)); .pipe(gulp.dest(paths.jsOut));
}); });
gulp.task('scripts', ['js-browserify']); gulp.task('scripts', ['js-browserify']);
// Styles // Styles
gulp.task('less-compile', function (done) { gulp.task('less-compile', function (callback) {
return gulp.src(paths.less) return gulp.src(paths.less)
.pipe(less().on(failSafe ? 'error' : 'none', shallow(done))) .pipe(failsafePipe(less(), callback))
.pipe(!isLocal() ? nano().on(failSafe ? 'error' : 'none', shallow(done)) : gutil.noop()) .pipe(!isLocal() ? failsafePipe(nano(), callback) : gutil.noop())
.pipe(rename('style.all.min.css')) .pipe(rename('style.all.min.css'))
.pipe(gulp.dest(paths.lessOut)); .pipe(gulp.dest(paths.lessOut));
}); });
...@@ -154,7 +159,7 @@ gulp.task('styles', ['less-compile']); ...@@ -154,7 +159,7 @@ gulp.task('styles', ['less-compile']);
// Stages // Stages
gulp.task('watch', function () { gulp.task('watch', function () {
failSafe = true; failsafe = true;
gulp.watch(paths.files, ['files']); gulp.watch(paths.files, ['files']);
gulp.watch(paths.imgFiles, ['images']); gulp.watch(paths.imgFiles, ['images']);
gulp.watch([paths.htmlFiles, paths.pugFiles], ['markup']); gulp.watch([paths.htmlFiles, paths.pugFiles], ['markup']);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment