forked from dominiek/app-skeleton
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserve.js
36 lines (29 loc) · 982 Bytes
/
serve.js
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
32
33
34
35
36
const Koa = require('koa');
const config = require('./webpack.config');
const webpack = require('koa-webpack'); // eslint-disable-line
const historyApiFallback = require('./history-middleware');
const admin = new Koa();
const app = new Koa();
const HOST = '0.0.0.0';
const APP_PORT = parseInt(process.env.APP_PORT || 3001, 10);
const ADMIN_PORT = parseInt(process.env.API_PORT || 3002, 10);
const webpackmiddleware = webpack({
config: {
...config,
mode: 'development'
}
});
app.use(historyApiFallback({ index: '/' }));
admin.use(historyApiFallback({ index: '/' }));
admin.use(async (ctx, next) => {
if (ctx.url === '/') {
ctx.url = '/admin.html';
}
await next();
});
admin.use(webpackmiddleware);
app.use(webpackmiddleware);
admin.listen(ADMIN_PORT, HOST);
app.listen(APP_PORT, HOST);
console.log(`Running App on http://${HOST}:${APP_PORT}/`); // eslint-disable-line
console.log(`Running Admin on http://${HOST}:${ADMIN_PORT}/`); // eslint-disable-line