"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.parseChartData = parseChartData; exports.getChartData = exports.getBuildAnalyzeEnv = exports.getDevAnalyzeEnv = void 0; function _react() { const data = _interopRequireDefault(require("react")); _react = function _react() { return data; }; return data; } function _lodash() { const data = require("lodash"); _lodash = function _lodash() { return data; }; return data; } function _fs() { const data = require("fs"); _fs = function _fs() { return data; }; return data; } function _path() { const data = require("path"); _path = function _path() { return data; }; return data; } function _portfinder() { const data = _interopRequireDefault(require("portfinder")); _portfinder = function _portfinder() { return data; }; return data; } function _mkdirp() { const data = _interopRequireDefault(require("mkdirp")); _mkdirp = function _mkdirp() { return data; }; return data; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } const getAvailablePort = /*#__PURE__*/function () { var _ref = _asyncToGenerator(function* () { _portfinder().default.basePort = 8888; _portfinder().default.highestPort = 9999; return yield _portfinder().default.getPortPromise(); }); return function getAvailablePort() { return _ref.apply(this, arguments); }; }(); const getDevAnalyzeEnv = /*#__PURE__*/function () { var _ref2 = _asyncToGenerator(function* () { try { const port = yield getAvailablePort(); return { ANALYZE: '1', ANALYZE_MODE: 'server', ANALYZE_OPEN: 'none', ANALYZE_LOG_LEVEL: 'silent', ANALYZE_PORT: port }; } catch (_) { return {}; } }); return function getDevAnalyzeEnv() { return _ref2.apply(this, arguments); }; }(); exports.getDevAnalyzeEnv = getDevAnalyzeEnv; const getBuildAnalyzeEnv = /*#__PURE__*/function () { var _ref3 = _asyncToGenerator(function* ({ analyze, dbPath, fileName }) { if (!analyze) { return {}; } // 创建 db 目录 try { _mkdirp().default.sync(dbPath); const analyzeStatsPath = (0, _path().join)(dbPath, fileName); return { ANALYZE: '1', ANALYZE_MODE: 'disabled', // 不启动分析服务 ANALYZE_DUMP: analyzeStatsPath, // 只将 stats 写入指定地址 ANALYZE_LOG_LEVEL: 'silent' }; } catch (_) { console.log(_.stack); return {}; } }); return function getBuildAnalyzeEnv(_x) { return _ref3.apply(this, arguments); }; }(); exports.getBuildAnalyzeEnv = getBuildAnalyzeEnv; function parseChartData(stats) { if (!stats) { return null; } let chartData; const analyzer = require('umi-webpack-bundle-analyzer/lib/analyzer'); try { /** * outputPath: * 1. build: stats.outputPath * 2. dev: null */ chartData = analyzer.getViewerData(stats, stats.outputPath, { excludeAssets: null }); } catch (err) { chartData = null; } if ((0, _lodash().isPlainObject)(chartData) && (0, _lodash().isEmpty)(chartData)) { chartData = null; } return chartData; } const getChartData = statsPath => { if (!statsPath) { return null; } if (!(0, _fs().existsSync)(statsPath)) { return null; } let stats; try { stats = JSON.parse((0, _fs().readFileSync)(statsPath, { encoding: 'utf8' })); } catch (_) { return null; } return parseChartData(stats); }; exports.getChartData = getChartData;