UNPKG

angular-formly-repeating-section

Version:
70 lines (58 loc) 1.9 kB
var source = require('vinyl-source-stream'); var gulp = require('gulp'); var gutil = require('gulp-util'); var browserify = require('browserify'); var babelify = require('babelify'); var stringify = require('stringify'); var watchify = require('watchify'); var notify = require('gulp-notify'); var uglify = require('gulp-uglify'); var streamify = require('gulp-streamify'); var rename = require('gulp-rename'); function handleErrors() { var args = Array.prototype.slice.call(arguments); notify.onError({ title: 'Compile Error', message: '<%= error.message %>' }).apply(this, args); this.emit('end'); // Keep gulp from hanging on this task } function buildScript(file, watch) { var props = { entries: ['./src/' + file], debug : true, transform: [ [ stringify, { extensions: ['.html'], minify: true }], [ babelify, {'presets': ['es2015']}] ], sourceType: 'module' }; // watchify() if watch requested, otherwise run browserify() once var bundler = watch ? watchify(browserify(props)) : browserify(props); function rebundle() { var stream = bundler.bundle(); return stream .on('error', handleErrors) .pipe(source(file)) .pipe( streamify(uglify()) ) .pipe(rename(function (path) { path.basename = "angular-formly-repeating-section"; })) .pipe(gulp.dest('./dist')); } // listen for an update and run rebundle bundler.on('update', function() { rebundle(); gutil.log('Rebundle...'); }); // run it once the first time buildScript is called return rebundle(); } // run once gulp.task('scripts', function() { return buildScript('index.js', false); }); // run 'scripts' task first, then watch for future changes gulp.task('default', ['scripts'], function() { return buildScript('index.js', true); });