UNPKG

webpack-typescript-builder

Version:

Webpack config builder for typescript, styles (css and sass), fonts and images.

32 lines (31 loc) 1.43 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const commander_1 = __importDefault(require("commander")); const express_1 = __importDefault(require("express")); const webpack_1 = __importDefault(require("webpack")); const config_1 = require("./config"); const devMiddleware = require("webpack-dev-middleware"); const hotMiddleware = require("webpack-hot-middleware"); const hotServerMiddleware = require("webpack-hot-server-middleware"); function serve(dir) { const config = config_1.createConfigs(dir); const compiler = webpack_1.default(config); const app = express_1.default(); const port = process.env.PORT || 3000; process.stdout.write("Starting the development server.\n"); const devMiddlewareInstance = devMiddleware(compiler, { serverSideRender: true, stats: commander_1.default.debug === true, writeToDisk: true, }); app.use(devMiddlewareInstance); app.use(hotMiddleware(compiler.compilers.find(_ => _.name === "client"))); app.use(hotServerMiddleware(compiler, { chunkName: "server" })); app.listen(port, () => devMiddlewareInstance.waitUntilValid(() => { process.stdout.write(`Listening on port ${port}\n`); })); } commander_1.default.command("serve <dir>").action(serve);