Skip to content

Commit 44d0bd6

Browse files
committed
Start server before bundling
Fixes logging issue
1 parent 3c7dd34 commit 44d0bd6

2 files changed

Lines changed: 22 additions & 18 deletions

File tree

src/Bundler.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -459,8 +459,9 @@ class Bundler extends EventEmitter {
459459
}
460460

461461
async serve(port = 1234) {
462+
let server = await Server.serve(this, port);
462463
this.bundle();
463-
return await Server.serve(this, port);
464+
return server;
464465
}
465466
}
466467

src/Server.js

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -60,25 +60,28 @@ async function serve(bundler, port) {
6060
let freePort = await getPort({port});
6161
let server = http.createServer(middleware(bundler)).listen(freePort);
6262

63-
server.on('error', err => {
64-
bundler.logger.error(new Error(serverErrors(err, server.address().port)));
65-
});
63+
return new Promise((resolve, reject) => {
64+
server.on('error', err => {
65+
bundler.logger.error(new Error(serverErrors(err, server.address().port)));
66+
reject(err);
67+
});
6668

67-
server.once('listening', connection => {
68-
let addon =
69-
server.address().port !== port
70-
? `- ${bundler.logger.chalk.red(
71-
`configured port ${port} could not be used.`
72-
)}`
73-
: '';
74-
bundler.logger.persistent(
75-
`Server running at ${bundler.logger.chalk.cyan(
76-
`http://localhost:${server.address().port}`
77-
)} ${addon}\n`
78-
);
79-
});
69+
server.once('listening', connection => {
70+
let addon =
71+
server.address().port !== port
72+
? `- ${bundler.logger.chalk.red(
73+
`configured port ${port} could not be used.`
74+
)}`
75+
: '';
76+
bundler.logger.persistent(
77+
`Server running at ${bundler.logger.chalk.cyan(
78+
`http://localhost:${server.address().port}`
79+
)} ${addon}`
80+
);
8081

81-
return server;
82+
resolve(server);
83+
});
84+
});
8285
}
8386

8487
exports.middleware = middleware;

0 commit comments

Comments
 (0)