UNPKG

build-scripts

Version:

scripts core

57 lines (56 loc) 2.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const chalk_1 = require("chalk"); const formatWebpackMessages = require("react-dev-utils/formatWebpackMessages"); const log = require("./log"); const defaultOptions = { // errors and warings will be logout by formatWebpackMessages errors: false, warnings: false, colors: true, assets: true, chunks: false, entrypoints: false, modules: false, }; const webpackStats = ({ urls, stats, statsOptions = defaultOptions, isFirstCompile }) => { const statsJson = stats.toJson({ all: false, errors: true, warnings: true, timings: true, }); // compatible with webpack 5 ['errors', 'warnings'].forEach((jsonKey) => { statsJson[jsonKey] = (statsJson[jsonKey] || []).map((item) => (item.message || item)); }); const messages = formatWebpackMessages(statsJson); const isSuccessful = !messages.errors.length; if (!process.env.DISABLE_STATS) { log.info('WEBPACK', stats.toString(statsOptions)); if (isSuccessful) { // @ts-ignore if (stats.stats) { log.info('WEBPACK', 'Compiled successfully'); } else { log.info('WEBPACK', `Compiled successfully in ${(statsJson.time / 1000).toFixed(1)}s!`); } if (isFirstCompile && urls) { console.log(); log.info('WEBPACK', chalk_1.default.green('Starting the development server at:')); log.info(' - Local : ', chalk_1.default.underline.white(urls.localUrlForBrowser)); log.info(' - Network: ', chalk_1.default.underline.white(urls.lanUrlForTerminal)); console.log(); } } else if (messages.errors.length) { log.error('', messages.errors.join('\n\n')); } else if (messages.warnings.length) { log.warn('', messages.warnings.join('\n\n')); } } return isSuccessful; }; exports.default = webpackStats;