UNPKG

jarvis-react

Version:

React脚手架及命令行工具合集

53 lines (52 loc) 2.11 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const ora_1 = __importDefault(require("ora")); const fs_extra_1 = __importDefault(require("fs-extra")); const webpack_1 = __importDefault(require("webpack")); const webpack_2 = require("../config/webpack"); const function_1 = require("../util/function"); function app(options) { function_1.logger.cyan('start build app with webpack...'); const spinner = ora_1.default(); const publicDirPath = function_1.resolveProjectFile('public'); const outDirPath = function_1.resolveProjectFile('dist'); spinner.start('clean dist directory'); fs_extra_1.default.removeSync(outDirPath); spinner.succeed(); spinner.start('copy public files'); fs_extra_1.default.copySync(publicDirPath, outDirPath, { dereference: true, filter: (file) => !file.includes('index.html'), }); spinner.succeed(); spinner.start('start to compile with webpack ...'); const config = webpack_2.getWebpackConfig(options); const compiler = webpack_1.default(config); compiler.run((err, stats) => { if (err) { spinner.fail('compile with errors'); throw err; } const info = stats?.toJson() || {}; if (Array.isArray(info.errors) && info.errors.length > 0) { spinner.fail('compile with errors'); info.errors.forEach((item) => { console.error(item.moduleName); console.error(item.message); }); process.exit(1); } if (Array.isArray(info.warnings) && info.warnings.length > 0) { spinner.info('compile with warnings'); info.warnings.forEach((item) => { console.error(item.moduleName); console.error(item.message); }); } spinner.succeed(`compile success in ${function_1.convertTime(info.time)}`); }); } exports.default = app;