'use strict'; var gulp = require('gulp'); var browserify = require('browserify'); var source = require('vinyl-source-stream'); var stringify = require('stringify'); var del = require('del'); var inline = require('gulp-inline'); var minifyInline = require('gulp-minify-inline'); var minifyHTML = require('gulp-minify-html'); gulp.task('clean', function(done) { del(['dist', 'tmp']).then(function() { done(); }); }); gulp.task('browserify', ['clean'], function(done) { return browserify('src/scripts/config-page.js', { debug: true }) .transform(stringify(['.html', '.mustache'])) .bundle() .pipe(source('config-page.js')) .pipe(gulp.dest('./tmp/')); }); gulp.task('inlineHtml', ['clean', 'browserify'], function() { return gulp.src('src/config-page.html') .pipe(inline()) .pipe(minifyInline({ js: {}, jsSelector: 'script[uglify]' })) .pipe(minifyHTML()) .pipe(gulp.dest('dist/')); }); gulp.task('default', ['inlineHtml']);