const { watch, dest, series, parallel } = require('gulp'); const sourcemaps = require('gulp-sourcemaps'); const terser = require('gulp-terser-js'); const browserify = require('browserify'); const watchify = require('watchify'); const babelify = require('babelify'); const source = require('vinyl-source-stream'); const buffer = require('vinyl-buffer'); function Task() { return watchify( browserify({ entries: [`./lib/index.js`], transform: [ babelify.configure({ presets: ['@babel/preset-env'], plugins: ['@babel/plugin-transform-runtime', '@babel/plugin-transform-async-to-generator'] }), ], standalone: 'std-test', debug: true, }) ) .bundle() .on('error', function(error) { console.error(error); this.emit('end'); }) .pipe(source('bundle.js')) .pipe(buffer()) .pipe(sourcemaps.init({ loadMaps: true })) .pipe(terser()) .pipe(sourcemaps.write('.')) .pipe(dest('dist')); } function watchTask() { watch(['lib/**/*.js'], parallel(Task)); } exports.default = series(clean, parallel(Task), watchTask);