1 | const chalk = require('chalk')
|
2 | const emoji = require('node-emoji')
|
3 | const serve = require('webpack-serve')
|
4 | const historyApiFallback = require('connect-history-api-fallback')
|
5 | const koaConnect = require('koa-connect')
|
6 |
|
7 | const getWebpackConfig = require('../utils/getWebpackConfig')
|
8 | const createWebpackCompiler = require('../utils/createWebpackCompiler')
|
9 |
|
10 | module.exports = options => {
|
11 | process.env.GNOLL_ENTRY = options.entry
|
12 | process.env.GNOLL_TARGET = 'web'
|
13 | process.env.GNOLL_ENV = 'browser'
|
14 | process.env.GNOLL_DEVSERVER = 1
|
15 |
|
16 | const { serve: serveConfig, ...webpackConfig } = getWebpackConfig(options)
|
17 |
|
18 | const port = (serveConfig && serveConfig.port) || 3000
|
19 | const host = (serveConfig && serveConfig.host) || '0.0.0.0'
|
20 | const add =
|
21 | (serveConfig && serveConfig.add) ||
|
22 | (app => app.use(koaConnect(historyApiFallback())))
|
23 |
|
24 | console.log(emoji.get('rocket'), ' Starting the development server...')
|
25 | console.log(`The app is running at http://${host}:${port}/\n`)
|
26 |
|
27 | const compiler = createWebpackCompiler(webpackConfig)
|
28 |
|
29 | let start
|
30 |
|
31 | serve(
|
32 | {},
|
33 | {
|
34 | ...serveConfig,
|
35 | host,
|
36 | port,
|
37 | compiler,
|
38 | add,
|
39 | hotClient: { logLevel: 'silent' },
|
40 | devMiddleware: { logLevel: 'silent' },
|
41 | logLevel: 'silent'
|
42 | }
|
43 | )
|
44 | }
|