diff --git a/lib/Server.js b/lib/Server.js index 611f0c2045..5c03d45ae1 100644 --- a/lib/Server.js +++ b/lib/Server.js @@ -687,6 +687,10 @@ class Server { } else { this.listeningApp = http.createServer(this.app); } + + this.listeningApp.on('error', (err) => { + this.log.error(err); + }); } createSocketServer() { diff --git a/test/server/Server.test.js b/test/server/Server.test.js index ca041b7795..518de50e92 100644 --- a/test/server/Server.test.js +++ b/test/server/Server.test.js @@ -76,6 +76,16 @@ describe('Server', () => { }); }); + it('test listeningApp error reporting', () => { + const logMock = jest.fn(); + const compiler = webpack(config); + const server = new Server(compiler, baseDevConfig); + + server.log.error = logMock; + + server.listeningApp.emit('error', new Error('Error !!!')); + expect(server.log.error).toBeCalledWith(new Error('Error !!!')); + }); // issue: https://github.com/webpack/webpack-dev-server/issues/1724 describe('express.static.mine.types', () => { it("should success even if mine.types doesn't exist", (done) => {