UNPKG

1.56 kBJavaScriptView Raw
1module.exports = function initBuilder(r, app, opts, NODE_ENV) {
2 var DEVELOPMENT = NODE_ENV === 'development';
3 if (!DEVELOPMENT) return;
4
5 var WebpackDevServer = r('webpack-dev-server');
6 var colors = require('colors');
7
8 if (!WebpackDevServer) return;
9
10 app.on('ready', function(httpServer) {
11 var config = app.builder;
12
13 var compiler = config.load();
14 var WEBPACK_DEBUG = typeof process.env.WEBPACK_DEBUG !== 'undefined';
15 var server = new WebpackDevServer(compiler, {
16 contentBase: false,
17 publicPath: '',
18 hot: true,
19 stats: WEBPACK_DEBUG
20 });
21
22 app.use('/build', 'webpack', server.app);
23
24 if (!WEBPACK_DEBUG) {
25 compiler.plugin('done', function(stats) {
26 var warns = stats.compilation.warnings;
27 if (warns.length) {
28 console.log('====WARNINGS====\n'.yellow);
29 warns.forEach(function(warn) {
30 console.warn(((warn.module || {}).context || '').yellow + ':\n' + warn.message + '\n');
31 })
32 }
33
34 var errs = stats.compilation.errors;
35 if (errs.length) {
36 console.error('====ERRORS====\n'.red);
37 errs.forEach(function(err) {
38 console.error((err.module || {}).context.red + ':\n' + err.stack || err.message || err);
39 });
40 }
41 });
42 }
43
44 httpServer.listen = function() {}
45
46 server.listeningApp = httpServer;
47 server.listen();
48
49 delete httpServer.listen;
50
51 process.on('SIGTERM', close);
52 process.on('SIGINT', close);
53 function close() {
54 server.close();
55 }
56 });
57}