初始化
This commit is contained in:
129
uni_modules/UniDevTools/node_modules/@dcloudio/uni-stat/lib/uni.plugin.js
generated
vendored
Normal file
129
uni_modules/UniDevTools/node_modules/@dcloudio/uni-stat/lib/uni.plugin.js
generated
vendored
Normal file
@@ -0,0 +1,129 @@
|
||||
'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;
|
||||
Reference in New Issue
Block a user