gulpfile.js

With BrowserReload

by svantetobias

JavaScript

// Core deps
// Use require() because of rollup babel preset
const gulp = require('gulp');
const notify = require('gulp-notify');
const gulpif = require('gulp-if');
const size = require('gulp-size');
const plumber = require('gulp-plumber');
const rename = require('gulp-rename');
const gulprun = require('run-sequence');
const yargs = require('yargs');
const browserSync = require('browser-sync');
const wct = require('web-component-tester');

// HTML
const inline = require('gulp-inline-source');
const processInline = require('gulp-process-inline');
const minify = require('gulp-htmlmin');

// JS
const eslint = require('gulp-eslint');
const rollup = require('gulp-rollup-file');
const resolve = require('rollup-plugin-node-resolve');
const commonJs = require('rollup-plugin-commonjs');
const babel = require('rollup-plugin-babel');

// CSS
const postcss = require('gulp-postcss');
const autoprefixer = require('autoprefixer');

const bs = browserSync.create(),
  argv = yargs.boolean(['debug']).argv,
  errorNotifier = () => plumber({errorHandler: notify.onError('Error: <%= error.message %>')}),
  OPTIONS = {
    rollup: {
      plugins: [
        resolve({
          main: true,
          browser: true
        }),
        commonJs(),
        babel()
      ],
      format: 'es6'
    },
    postcss: [
      autoprefixer()
    ],
    inline: {
      compress: false,
      swallowErrors: true
    },
    HTMLmin: {
      removeComments: true,
      removeCommentsFromCDATA: true,
      collapseWhitespace: true,
      conservativeCollapse: true,
      caseSensitive: true,
      keepClosingSlash: true,
      customAttrAssign: [/\$=/],
      minifyCSS: true,
      minifyJS: true
    },
    browserSync: {
      server: {
        baseDir: './',
        index: 'demo/index.html',
        routes: {
          '/': './bower_components'
        }
      },
      open: false, // Don't open browser on reload
      notify: true // Show notifications in the browser.
    }
  };

gulp.task('build',...