webpack-typescript-builder
Version:
Webpack config builder for typescript, styles (css and sass), fonts and images.
32 lines (31 loc) • 1.43 kB
JavaScript
;
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);