26 lines
875 B
JavaScript
26 lines
875 B
JavaScript
|
module.exports = async (config) => {
|
||
|
let isReady = false;
|
||
|
const
|
||
|
http = require('http'),
|
||
|
|
||
|
address = require('network-address'),
|
||
|
handler = require('serve-handler'),
|
||
|
|
||
|
build = require('./build'),
|
||
|
|
||
|
{ build: buildOpts, logFunction: log = () => {}, serve: serveOpts } = config || {},
|
||
|
{ outputPath, srcPath } = buildOpts || {},
|
||
|
{ port = 5000 } = serveOpts || {},
|
||
|
|
||
|
server = http.createServer((request, response) => {
|
||
|
// You pass two more arguments for config and middleware
|
||
|
// More details here: https://github.com/vercel/serve-handler#options
|
||
|
return handler(request, response, { public: outputPath });
|
||
|
});
|
||
|
|
||
|
await build(config);
|
||
|
|
||
|
server.listen(port, async () => {
|
||
|
log(`Running at http://${address()}:${port} / http://localhost:${port}`);
|
||
|
});
|
||
|
};
|