/
client.ts
31 lines (25 loc) · 905 Bytes
/
client.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import * as webpack from 'webpack'
import { loadConfig } from 'ssr-server-utils'
import { webpackPromisify } from './utils/promisify'
const WebpackDevServer = require('webpack-dev-server-ssr')
const config = loadConfig()
const startClientServer = async (webpackConfig: webpack.Configuration) => {
const { webpackDevServerConfig, fePort, host } = config
return await new Promise((resolve) => {
const compiler = webpack(webpackConfig)
const server = new WebpackDevServer(compiler, webpackDevServerConfig)
compiler.hooks.done.tap('DonePlugin', () => {
resolve()
})
server.listen(fePort, host)
})
}
const startClientBuild = async (webpackConfig: webpack.Configuration) => {
const { webpackStatsOption } = config
const stats = await webpackPromisify(webpackConfig)
console.log(stats.toString(webpackStatsOption))
}
export {
startClientServer,
startClientBuild
}