UNPKG

t-comm

Version:

专业、稳定、纯粹的工具库

112 lines (105 loc) 3.04 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var fs = require('fs'); var path = require('path'); var node_fsUtil = require('../node/fs-util.js'); require('../fs/fs.js'); require('../time/time.js'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs); var path__default = /*#__PURE__*/_interopDefaultLegacy(path); /** * 统计页面总数、分包数目等 * @param dist * @returns result * * @example * ```ts * getPageTotal('./dist/dev/mp-weixin') * ``` */ function getPageTotal(dist) { var _a; var appJson = path__default["default"].resolve(dist, 'app.json'); var result = { pageTotal: 0, subPackageTotal: 0 }; if (!fs__default["default"].existsSync(appJson)) { return result; } // eslint-disable-next-line @typescript-eslint/no-require-imports var data = require(appJson); var _b = data.pages, pages = _b === void 0 ? [] : _b; var subPackages = ((_a = data.subPackages) === null || _a === void 0 ? void 0 : _a.length) ? data.subPackages : data.subpackages || []; result.pageTotal = pages.length + subPackages.reduce(function (acc, item) { var _a; acc += ((_a = item.pages) === null || _a === void 0 ? void 0 : _a.length) || 0; return acc; }, 0); result.subPackageTotal = subPackages.length; return result; } /** * 统计组件数目、wxml大小、wxss大小、js大小等 * @param dist * @returns result * * @example * ```ts * getComponentInfo('./dist/dev/mp-weixin') * ``` */ function getComponentInfo(dist, config) { if (config === void 0) { config = { wxmlPostfix: '.wxml', wxssPostfix: '.wxss', vendorNames: ['common/vendor-1.js', 'common/vendor.js'] }; } var result = { componentTotal: 0, wxsstTotal: 0, jsTotal: 0, wxmlSizeTotal: 0, wxssSizeTotal: 0, jsSizeTotal: 0, vendorJsSize: 0 }; if (!fs__default["default"].existsSync(dist)) { return result; } var isVendorJs = function isVendorJs(file) { var _a; return !!((_a = config.vendorNames) === null || _a === void 0 ? void 0 : _a.find(function (item) { return file.endsWith(item); })); }; try { node_fsUtil.traverseFolder(function (tPath) { var fileSize = fs__default["default"].statSync(tPath).size; if (tPath.endsWith(config.wxmlPostfix)) { result.componentTotal += 1; result.wxmlSizeTotal += fileSize; } if (tPath.endsWith(config.wxssPostfix)) { result.wxsstTotal += 1; result.wxssSizeTotal += fileSize; } if (tPath.endsWith('.js')) { result.jsTotal += 1; result.jsSizeTotal += fileSize; } if (isVendorJs(tPath)) { result.vendorJsSize += fileSize; } }, dist); } catch (err) { console.log('traverseFolder.error: ', err); } return result; } exports.getComponentInfo = getComponentInfo; exports.getPageTotal = getPageTotal;