uni-ticket-system/node_modules/@dcloudio/uni-stat/lib/uni.plugin.js

130 lines
6.0 KiB
JavaScript
Raw Normal View History

2023-12-05 02:11:10 +00:00
'use strict';
var debug = require('debug');
var uniCliShared = require('@dcloudio/uni-cli-shared');
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
var debug__default = /*#__PURE__*/_interopDefault(debug);
function once(fn, ctx = null) {
let res;
return ((...args) => {
if (fn) {
res = fn.apply(ctx, args);
fn = null;
}
return res;
});
}
const uniStatLog = once((text) => {
console.log();
console.warn(text);
console.log();
});
const uniStatDeviceLog = once((text) => {
console.log();
console.warn(text);
console.log();
});
var index = () => [
uniCliShared.defineUniMainJsPlugin((opts) => {
let statVersion = '1';
let isEnable = false;
const stats = {
'@dcloudio/uni-stat': uniCliShared.resolveBuiltIn('@dcloudio/uni-stat/dist/uni-stat.es.js'),
'@dcloudio/uni-cloud-stat': uniCliShared.resolveBuiltIn('@dcloudio/uni-stat/dist/uni-cloud-stat.es.js'),
};
return {
name: 'uni:stat',
enforce: 'pre',
config(config, env) {
const inputDir = process.env.UNI_INPUT_DIR;
const platform = process.env.UNI_PLATFORM;
const titlesJson = Object.create(null);
uniCliShared.parsePagesJson(inputDir, platform).pages.forEach((page) => {
var _a;
const style = page.style || {};
const titleText =
// MP
style.navigationBarTitleText ||
(
// H5 || App
(_a = style.navigationBar) === null || _a === void 0 ? void 0 : _a.titleText) ||
'';
if (titleText) {
titlesJson[page.path] = titleText;
}
});
// ssr 时不开启
if (!uniCliShared.isSsr(env.command, config)) {
const statConfig = uniCliShared.getUniStatistics(inputDir, platform);
isEnable = statConfig.enable === true;
if (isEnable) {
const uniCloudConfig = statConfig.uniCloud || {};
// 获取manifest.json 统计配置,插入环境变量中
process.env.UNI_STATISTICS_CONFIG = JSON.stringify(statConfig);
statVersion = Number(statConfig.version) === 2 ? '2' : '1';
process.env.UNI_STAT_UNI_CLOUD = JSON.stringify(uniCloudConfig);
process.env.UNI_STAT_DEBUG = statConfig.debug ? 'true' : 'false';
if (process.env.NODE_ENV === 'production') {
const manifestJson = uniCliShared.parseManifestJsonOnce(inputDir);
if (!manifestJson.appid) {
uniStatLog(uniCliShared.M['stat.warn.appid']);
isEnable = false;
}
else {
if (!statConfig.version) {
uniStatLog(uniCliShared.M['stat.warn.version']);
}
else {
uniStatLog(`已开启 uni统计${statVersion}.0 版本`);
if (statVersion === '2') {
uniStatDeviceLog('【重要】因 HBuilderX 3.4.9 版本起uni统计2.0 调整了安卓端 deviceId 获取方式,导致 uni统计2.0 App-Android平台部分统计数据不准确。如使用了HBuilderX 3.4.9 - 3.6.4版本且开通了uni统计2.0的应用需要使用HBuilderX3.6.7及以上版本重新发布应用并升级 uniAdmin 云函数解决详见https://ask.dcloud.net.cn/article/40097');
}
}
}
}
else {
if (!statConfig.version) {
uniStatLog(uniCliShared.M['stat.warn.version']);
}
else {
uniStatLog(uniCliShared.M['stat.warn.tip'].replace('{version}', `${statVersion}.0`));
if (statVersion === '2') {
uniStatDeviceLog('【重要】因 HBuilderX 3.4.9 版本起uni统计2.0 调整了安卓端 deviceId 获取方式,导致 uni统计2.0 App-Android平台部分统计数据不准确。如使用了HBuilderX 3.4.9 - 3.6.4版本且开通了uni统计2.0的应用需要使用HBuilderX3.6.7及以上版本重新发布应用并升级 uniAdmin 云函数解决详见https://ask.dcloud.net.cn/article/40097');
}
}
}
}
debug__default.default('uni:stat')('isEnable', isEnable);
}
process.env.UNI_STAT_TITLE_JSON = JSON.stringify(titlesJson);
return {
define: {
'process.env.UNI_STAT_TITLE_JSON': process.env.UNI_STAT_TITLE_JSON,
'process.env.UNI_STAT_UNI_CLOUD': process.env.UNI_STAT_UNI_CLOUD,
'process.env.UNI_STAT_DEBUG': process.env.UNI_STAT_DEBUG,
'process.env.UNI_STATISTICS_CONFIG': process.env.UNI_STATISTICS_CONFIG,
},
};
},
resolveId(id) {
return stats[id] || null;
},
transform(code, id) {
if (isEnable && opts.filter(id)) {
return {
code: code +
`;import '@dcloudio/uni${statVersion === '2' ? '-cloud' : ''}-stat';`,
map: null,
};
}
},
};
}),
];
module.exports = index;