t-comm
Version:
专业、稳定、纯粹的工具库
112 lines (105 loc) • 3.04 kB
JavaScript
;
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;