130 lines
6.0 KiB
JavaScript
130 lines
6.0 KiB
JavaScript
'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;
|