代码拉取完成,页面将自动刷新
const fs = require("fs-extra");
const path = require("path");
const Koa = require("koa");
const Router = require("koa-router");
const serve = require("koa-static");
const mount = require("koa-mount");
const webpack = require("webpack");
const bodyParser = require("koa-bodyparser");
const {
koaDevMiddleware,
koaHotMiddleware
} = require("./hmr");
const webpackDevConfig = require("./webpack.dev.config");
const {
isProd
} = require("./config/phases");
const webpackCompiler = webpack(webpackDevConfig);
const app = new Koa();
const router = new Router();
app.use(bodyParser());
app.use(router.routes());
app.use(mount("/", serve(path.resolve(__dirname, "./public"))));
if (isProd) {
const indexHtml = path.resolve(__dirname, "./public/index.html");
app.use(ctx => {
ctx.body = fs.readFileSync(indexHtml, {
encoding: "utf8"
});
});
} else {
app.use(koaDevMiddleware(webpackCompiler, {
noInfo: true,
}));
app.use(koaHotMiddleware(webpackCompiler, {
path: "/__webpack_hmr",
heartbeat: 10 * 1000,
}));
}
router.get("/api/menu", async (ctx) => {
const menuPath = path.resolve(__dirname, "./public/static/mock/menu.json");
ctx.response.body = await fs.readJSON(menuPath);
});
router.post("/api/menu", async (ctx) => {
const savePath4menu = path.resolve(__dirname, "./public/static/mock/menu.json");
let res = await fs.writeJSON(savePath4menu, ctx.request.body);
ctx.response.body = {
body: ctx.request.body
};
});
const port = process.env.PORT || 8082;
app.listen(port, () => {
// eslint-disable-next-line no-console
console.log(`Server is listening on ${port} port`);
});
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。