]> git.wincent.com - hextrapolate.git/blob - gulpfile.babel.js
563f8787500f0f9d9ba023b3e08e29c9103c43c1
[hextrapolate.git] / gulpfile.babel.js
1 import WebpackDevServer from 'webpack-dev-server';
2 import config from './webpack.config.js';
3 import gulp from 'gulp';
4 import gutil from 'gulp-util';
5 import webpack from 'webpack';
6
7 gulp.task('default', ['webpack-dev-server']);
8
9 gulp.task('build', ['webpack:build']);
10
11 gulp.task('webpack:build', callback => {
12   const myConfig = {
13     ...config,
14     plugins: config.plugins.concat(
15       new webpack.DefinePlugin({
16         'process.env': {
17           NODE_ENV: JSON.stringify('production'),
18         },
19       }),
20       new webpack.optimize.DedupePlugin(),
21       new webpack.optimize.UglifyJsPlugin()
22     ),
23   };
24
25   webpack(myConfig, (err, stats) => {
26     if (err) {
27       throw new gutil.PluginError('webpack:build', err);
28     }
29     gutil.log('[webpack:build]', stats.toString({
30       colors: true
31     }));
32     callback();
33   });
34 });
35
36 gulp.task('webpack-dev-server', callback => {
37   var myConfig = {
38     ...config,
39     debug: true,
40   };
41
42   new WebpackDevServer(webpack(myConfig), {
43     publicPath: config.output.publicPath,
44     hot: true,
45     historyApiFallback: true,
46     stats: {
47       colors: true,
48     },
49   }).listen(8080, 'localhost', err => {
50     if (err) {
51       throw new gutil.PluginError('webpack-dev-server', err);
52     }
53     gutil.log('[webpack-dev-server]', 'http://localhost:3000');
54   });
55 });