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');
var uglify = require('gulp-uglify');
var gutil = require('gulp-util');
var failSafe = false;
var failsafe = false;
function isLocal() {
return !gutil.env.env;
......@@ -27,9 +27,14 @@ function isProduction() {
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) {
done(error);
callback(error);
};
}
......@@ -94,7 +99,7 @@ gulp.task('images', ['img-copy']);
// Markup
gulp.task('html-min', function () {
gulp.task('html-min', function (callback) {
return gulp.src(paths.html)
.pipe(isLocal() || isTesting()
? 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 () {
.pipe(isProduction()
? inject.replace('<!--\\s*?weinre\\s*?-->', '')
: gutil.noop())
.pipe(htmlMin({
.pipe(failsafePipe(htmlMin({
collapseWhitespace: true,
conservativeCollapse: true
}))
}), callback))
.pipe(gulp.dest(paths.htmlOut));
});
gulp.task('pug-compile', function () {
gulp.task('pug-compile', function (callback) {
return gulp.src(paths.pug)
.pipe(isLocal() || isTesting()
? 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 () {
.pipe(isProduction()
? inject.replace('//-?\\s*?weinre', '')
: gutil.noop())
.pipe(pug())
.pipe(failsafePipe(pug(), callback))
.pipe(gulp.dest(paths.pugOut));
});
gulp.task('markup', ['html-min', 'pug-compile']);
// Scripts
gulp.task('js-browserify', function (done) {
return browserify(paths.js, {
gulp.task('js-browserify', function (callback) {
return failsafePipe(browserify(paths.js, {
debug: isLocal()
})
.bundle()
.bundle(), callback)
.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));
});
gulp.task('scripts', ['js-browserify']);
// Styles
gulp.task('less-compile', function (done) {
gulp.task('less-compile', function (callback) {
return gulp.src(paths.less)
.pipe(less().on(failSafe ? 'error' : 'none', shallow(done)))
.pipe(!isLocal() ? nano().on(failSafe ? 'error' : 'none', shallow(done)) : gutil.noop())
.pipe(failsafePipe(less(), callback))
.pipe(!isLocal() ? failsafePipe(nano(), callback) : gutil.noop())
.pipe(rename('style.all.min.css'))
.pipe(gulp.dest(paths.lessOut));
});
......@@ -154,7 +159,7 @@ gulp.task('styles', ['less-compile']);
// Stages
gulp.task('watch', function () {
failSafe = true;
failsafe = true;
gulp.watch(paths.files, ['files']);
gulp.watch(paths.imgFiles, ['images']);
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