UNPKG

@edwardxyt/gws-cli

Version:

这是一个web脚手架工具,用于生成基于webpack5,生成typescript+react17+mobx5+reactRouter6的应用。初衷是要解决多入口,多环境。单独编译单独运行的脚手架。做到小而美。拒绝锦上添花。

44 lines (36 loc) 1.24 kB
const Koa = require("koa"); const static = require("koa-static"); const connectHistory = require("connect-history-api-fallback"); const detect = require("detect-port"); const path = require("path"); const ip = require("ip"); const debug = require("debug"); const echo = debug("development:koa"); const app = new Koa(); let staticDir = path.join(__dirname, "..", "temp"); echo(`staticDir: ${staticDir}`); // 配置静态web服务的中间件 app.use(static(staticDir)); app.use(() => { const middleware = connectHistory(); return async (ctx, next) => { middleware(ctx, null, () => {}); await next(); }; }); exports.start = async () => { // 端口监测 let port = process.env.npm_package_config_port; let _port = await detect(port); if (port == _port) { echo(`端口号: ${port} 没有被占用,放心使用。`); echo("启动webpack --watch"); echo(`服务器运行在 http://${ip.address()}:${port}`); } else { port = _port; echo(`端口号: ${port} 已占用, 尝试使用端口号: ${_port}!`); echo("启动webpack --watch"); echo(`服务器运行在 http://${ip.address()}:${_port}`); } await app.listen(port); };