49 lines
1.1 KiB
JavaScript
49 lines
1.1 KiB
JavaScript
|
/* eslint angular/module-getter:0 */
|
||
|
const gulp = require('gulp');
|
||
|
const gutil = require('gulp-util');
|
||
|
|
||
|
const webpack = require('webpack');
|
||
|
const webpackConf = require('../conf/webpack.conf');
|
||
|
const webpackDistConf = require('../conf/webpack-dist.conf');
|
||
|
const browsersync = require('browser-sync');
|
||
|
|
||
|
gulp.task('webpack:dev', done => {
|
||
|
webpackWrapper(false, webpackConf, done);
|
||
|
});
|
||
|
|
||
|
gulp.task('webpack:watch', done => {
|
||
|
webpackWrapper(true, webpackConf, done);
|
||
|
});
|
||
|
|
||
|
gulp.task('webpack:dist', done => {
|
||
|
webpackWrapper(false, webpackDistConf, done);
|
||
|
});
|
||
|
|
||
|
function webpackWrapper(watch, conf, done) {
|
||
|
const webpackBundler = webpack(conf);
|
||
|
|
||
|
const webpackChangeHandler = (err, stats) => {
|
||
|
if (err) {
|
||
|
conf.errorHandler('Webpack')(err);
|
||
|
}
|
||
|
gutil.log(stats.toString({
|
||
|
colors: true,
|
||
|
chunks: false,
|
||
|
hash: false,
|
||
|
version: false
|
||
|
}));
|
||
|
if (done) {
|
||
|
done();
|
||
|
done = null;
|
||
|
} else {
|
||
|
browsersync.reload();
|
||
|
}
|
||
|
};
|
||
|
|
||
|
if (watch) {
|
||
|
webpackBundler.watch(200, webpackChangeHandler);
|
||
|
} else {
|
||
|
webpackBundler.run(webpackChangeHandler);
|
||
|
}
|
||
|
}
|