1 | var WebpackDevServer = require('webpack-dev-server');
|
2 | var webpack = require('webpack');
|
3 |
|
4 | function setConfigBase(config, base) {
|
5 | config.output.publicPath = base;
|
6 | }
|
7 |
|
8 | function setConfigsBase(config, base) {
|
9 | if (Array.isArray(config))
|
10 | config.forEach(function(config) {
|
11 | setConfigBase(config, base);
|
12 | });
|
13 | else
|
14 | setConfigBase(config, base);
|
15 | }
|
16 |
|
17 | module.exports = function(config, opts) {
|
18 | var hostname = opts.hostname || 'localhost';
|
19 | var base = 'http://' + hostname + ':' + opts.port + '/';
|
20 |
|
21 |
|
22 | setConfigsBase(config, base);
|
23 |
|
24 | var webpackDevServerOpts = {
|
25 | contentBase: opts.dir,
|
26 | quiet: false,
|
27 | hot: opts.hot,
|
28 | progress: true,
|
29 | stats: {
|
30 | colors: true,
|
31 | timings: true
|
32 | }
|
33 | };
|
34 |
|
35 | if (opts.debug)
|
36 | console.log(
|
37 | 'Webpack Dev Server Opts:'.blue.bold,
|
38 | "\n", webpackDevServerOpts, "\n"
|
39 | );
|
40 |
|
41 | var webpackServer = new WebpackDevServer(webpack(config), webpackDevServerOpts);
|
42 |
|
43 | console.log('Running Webpack...');
|
44 |
|
45 | if (opts.debug)
|
46 | console.log('Webpack server on http://%s:%s', hostname, opts.port);
|
47 |
|
48 | webpackServer.listen(opts.port, hostname);
|
49 | }; |
\ | No newline at end of file |