1 | 'use strict';
|
2 |
|
3 | var debug = require('debug');
|
4 | var notifier = require('node-notifier');
|
5 | var webpack = require('webpack');
|
6 | var WebpackDevServer = require('webpack-dev-server');
|
7 |
|
8 | module.exports = function (webpackConfig) {
|
9 | var NAME = webpackConfig.displayName;
|
10 | var PORT = webpackConfig.hotloadPort;
|
11 | var HOST = "http://localhost:" + PORT;
|
12 |
|
13 | var log = debug('webpack:dev');
|
14 | var compiler = webpack(webpackConfig);
|
15 |
|
16 | compiler.plugin("done", function (stats) {
|
17 | var errors = stats.compilation.errors;
|
18 | errors.length && errors.forEach(function (error) {
|
19 | console.log(error.message);
|
20 |
|
21 | try {
|
22 | notifier.notify({
|
23 | title: NAME + ' ' + error.module.rawRequest,
|
24 | message: error.error.message.split(': ').join('\n')
|
25 | })
|
26 | } catch (e) { console.log(e.message) }
|
27 | });
|
28 | });
|
29 |
|
30 | var server = new WebpackDevServer(compiler, {
|
31 | contentBase: HOST,
|
32 | publicPath: webpackConfig.output.publicPath,
|
33 | noInfo: true,
|
34 | hot: true,
|
35 | quiet: true
|
36 | });
|
37 |
|
38 | log("Starting");
|
39 |
|
40 | server.listen(PORT, 'localhost', function (err, result) {
|
41 | if (err) {
|
42 | log("Error:", err);
|
43 | }
|
44 |
|
45 | log("Listening on port " + PORT);
|
46 | });
|
47 | }
|
48 |
|