var banner = [‘/**’,

' * <%= pkg.name %> - <%= pkg.description %>',
' * @version v<%= pkg.version %>',
' * @link <%= pkg.homepage %>',
' * @license <%= pkg.license %>',
' */',
''].join('\n');

var browserSync = require(‘browser-sync’).create(); var concat = require(‘gulp-concat’); var del = require(‘del’); var gulp = require(‘gulp’); var header = require(‘gulp-header’); var notify = require(‘gulp-notify’); var pkg = require(‘./package.json’); var plumber = require(‘gulp-plumber’); var rename = require(‘gulp-rename’); var runSequence = require(‘run-sequence’); var uglify = require(‘gulp-uglify’); var webpack = require(‘webpack-stream’);

/*

--------------------
Clean task
--------------------

*/

gulp.task(‘clean’, function () {

return del(['**/.DS_Store']);

});

/*

--------------------
Scripts tasks
--------------------

*/

gulp.task(‘scripts:main’, function() {

return gulp.src(['./src/what-input.js'])
  .pipe(webpack({
    output: {
      chunkFilename: '[name].js',
      library: 'whatInput',
      libraryTarget: 'umd',
      umdNamedDefine: true
    }
  }))
  .pipe(rename('what-input.js'))
  .pipe(header(banner, { pkg : pkg } ))
  .pipe(gulp.dest('./dist/'))
  .pipe(uglify())
  .pipe(rename({
    suffix: '.min'
  }))
  .pipe(header(banner, { pkg : pkg } ))
  .pipe(gulp.dest('./dist/'))
  .pipe(notify('Build complete'));

});

gulp.task(‘scripts:ie8’, function() {

return gulp.src(['./src/polyfills/ie8/*.js'])
  .pipe(plumber({
    errorHandler: notify.onError("Error: <%= error.message %>")
  }))
  .pipe(concat('lte-IE8.js'))
  .pipe(uglify())
  .pipe(gulp.dest('./dist/'))
  .pipe(notify('IE8 scripts task complete'));

});

gulp.task(‘scripts’, [‘scripts:main’, ‘scripts:ie8’]);

/*

--------------------
Default task
--------------------

*/

gulp.task(‘default’, function() {

runSequence(
  'clean',
  [
    'scripts'
  ],
  function() {
    browserSync.init({
      server: {
        baseDir: './'
      }
    });

    gulp.watch([
      './src/what-input.js',
      './polyfills/*.js'
    ], ['scripts']).on('change', browserSync.reload);

    gulp.watch([
      './*.html',
    ]).on('change', browserSync.reload);
  }
);

});