#!/usr/bin/env ts-node import createWebpackConfig from "./scripts/createWebpackConfig"; import getPagePlugins from "./scripts/getPagePlugins"; import LoggerService from "./scripts/helpers/LoggerService"; import { forEach, isArray } from "lodash"; const webpack = require("webpack"); const build = async () => { LoggerService.warning("Starting to build static project.\n"); const pagePlugins = await getPagePlugins(); LoggerService.warning("Creating webpack config...\n"); const webpackConfig = createWebpackConfig("production", pagePlugins); LoggerService.success("Successfully created webpack config!\n"); const compiler = webpack(webpackConfig); compiler.run((err, stats) => { if (err) { console.error(err.stack || err); if (err.details) { // console.log("details"); console.error(err.details); } return; } const info = stats.toJson(); if (stats.hasErrors()) { if (isArray(info.errors)) { forEach(info.errors, error => { LoggerService.error(error.message); LoggerService.error(error.details); }); } } if (stats.hasWarnings()) { console.log("warns"); console.log(info.warnings); } compiler.close(closeErr => { if (closeErr) { LoggerService.error("Failed to close compiler.."); } }); }); }; build();