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}`); }); };