UNPKG

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