25 lines
770 B
TypeScript
25 lines
770 B
TypeScript
import Koa from "koa";
|
|
import serve from "koa-static";
|
|
import path from "path";
|
|
import dotenv from "dotenv";
|
|
|
|
dotenv.config();
|
|
(async () => {
|
|
const app = new Koa();
|
|
if (process.env.NODE_ENV === "development") {
|
|
const koaWebpack = (await import("koa-webpack")).default;
|
|
const config = (await import("../webpack.config")).default;
|
|
const middleware = await koaWebpack({
|
|
config,
|
|
devMiddleware: { publicPath: "/" },
|
|
});
|
|
app.use(middleware);
|
|
} else {
|
|
app.use(serve(path.resolve(__dirname, "../client")));
|
|
}
|
|
console.info(
|
|
`Server listening on ${process.env.PROTOCOL}://${process.env.HOSTNAME}:${process.env.PORT}`
|
|
);
|
|
app.listen(Number.parseInt(process.env.PORT), process.env.HOSTNAME);
|
|
})().catch(err => console.log(err));
|