@procore/core-scripts
Version: 
A CLI to enhance your development experience
54 lines • 2.02 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const command_1 = require("@oclif/command");
const cli_highlight_1 = require("cli-highlight");
const webpack_1 = tslib_1.__importDefault(require("webpack"));
const library_1 = require("../../webpack/library");
const BaseCommand_1 = require("../../BaseCommand");
class LibBuildCommand extends BaseCommand_1.BaseCommand {
    constructor() {
        super(...arguments);
        this.env = 'production';
        this.handler = (error, stats) => {
            if (error) {
                this.error(error);
            }
            this.log(stats === null || stats === void 0 ? void 0 : stats.toString({ chunks: false, colors: true }));
            if (stats === null || stats === void 0 ? void 0 : stats.hasErrors()) {
                this.exit(1);
            }
        };
    }
    async run() {
        // eslint-disable-next-line no-shadow
        const { flags } = this.parse(LibBuildCommand);
        const config = (0, library_1.createWebpackConfig)({
            env: 'production',
            workspace: this.workspace,
            analyze: flags.analyze,
        });
        if (flags.inspect) {
            // @ts-ignore Fix: type spec
            const output = config.toString({ verbose: false });
            this.log((0, cli_highlight_1.highlight)(output, { language: 'js' }));
            this.exit(0);
        }
        const webpackConfig = config.toConfig();
        const compiler = (0, webpack_1.default)(webpackConfig);
        compiler.run(this.handler);
    }
}
LibBuildCommand.description = 'Compiles the library in production mode.';
LibBuildCommand.flags = {
    analyze: command_1.flags.boolean({
        default: false,
        description: 'Run webpack bundle analyzer.',
    }),
    inspect: command_1.flags.boolean({
        default: false,
        description: 'Prints the Webpack configuration.',
    }),
};
exports.default = LibBuildCommand;
//# sourceMappingURL=build.js.map