From 752dc8cc332af1da7ffb3e461024c0d82cf83e4a Mon Sep 17 00:00:00 2001 From: fxy060608 Date: Thu, 31 Mar 2022 16:44:14 +0800 Subject: [PATCH] feat(stat): support uni-cloud-stat --- packages/uni-stat/lib/uni.plugin.js | 17 ++++++++++--- packages/uni-stat/src/plugin/index.ts | 25 ++++++++++++++++--- .../src/configResolved/plugins/resolveId.ts | 1 - 3 files changed, 36 insertions(+), 7 deletions(-) diff --git a/packages/uni-stat/lib/uni.plugin.js b/packages/uni-stat/lib/uni.plugin.js index 21ee3030d..c15c22c22 100644 --- a/packages/uni-stat/lib/uni.plugin.js +++ b/packages/uni-stat/lib/uni.plugin.js @@ -7,9 +7,14 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau var debug__default = /*#__PURE__*/_interopDefaultLegacy(debug); -var index = [ +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', @@ -33,7 +38,9 @@ var index = [ }); // ssr 时不开启 if (!uniCliShared.isSsr(env.command, config)) { - isEnable = uniCliShared.getUniStatistics(inputDir, platform).enable === true; + const statConfig = uniCliShared.getUniStatistics(inputDir, platform); + statVersion = statConfig.version === '2' ? '2' : '1'; + isEnable = statConfig.enable === true; if (process.env.NODE_ENV === 'production') { const manifestJson = uniCliShared.parseManifestJsonOnce(inputDir); if (!manifestJson.appid) { @@ -52,10 +59,14 @@ var index = [ }, }; }, + resolveId(id) { + return stats[id] || null; + }, transform(code, id) { if (isEnable && opts.filter(id)) { return { - code: code + `;import '@dcloudio/uni-stat';`, + code: code + + `;import '@dcloudio/uni${statVersion === '2' ? '-cloud' : ''}-stat';`, map: null, }; } diff --git a/packages/uni-stat/src/plugin/index.ts b/packages/uni-stat/src/plugin/index.ts index cbfc380f2..e04b7cc51 100644 --- a/packages/uni-stat/src/plugin/index.ts +++ b/packages/uni-stat/src/plugin/index.ts @@ -6,11 +6,21 @@ import { parseManifestJsonOnce, parsePagesJson, isSsr, + resolveBuiltIn, } from '@dcloudio/uni-cli-shared' -export default [ +export default () => [ defineUniMainJsPlugin((opts) => { + let statVersion: '1' | '2' = '1' let isEnable = false + const stats: Record = { + '@dcloudio/uni-stat': resolveBuiltIn( + '@dcloudio/uni-stat/dist/uni-stat.es.js' + ), + '@dcloudio/uni-cloud-stat': resolveBuiltIn( + '@dcloudio/uni-stat/dist/uni-cloud-stat.es.js' + ), + } return { name: 'uni:stat', enforce: 'pre', @@ -32,7 +42,9 @@ export default [ }) // ssr 时不开启 if (!isSsr(env.command, config)) { - isEnable = getUniStatistics(inputDir, platform).enable === true + const statConfig = getUniStatistics(inputDir, platform) + statVersion = statConfig.version === '2' ? '2' : '1' + isEnable = statConfig.enable === true if (process.env.NODE_ENV === 'production') { const manifestJson = parseManifestJsonOnce(inputDir) if (!manifestJson.appid) { @@ -53,10 +65,17 @@ export default [ }, } }, + resolveId(id) { + return stats[id] || null + }, transform(code, id) { if (isEnable && opts.filter(id)) { return { - code: code + `;import '@dcloudio/uni-stat';`, + code: + code + + `;import '@dcloudio/uni${ + statVersion === '2' ? '-cloud' : '' + }-stat';`, map: null, } } diff --git a/packages/vite-plugin-uni/src/configResolved/plugins/resolveId.ts b/packages/vite-plugin-uni/src/configResolved/plugins/resolveId.ts index e7bf706a0..2115e4ec4 100644 --- a/packages/vite-plugin-uni/src/configResolved/plugins/resolveId.ts +++ b/packages/vite-plugin-uni/src/configResolved/plugins/resolveId.ts @@ -12,7 +12,6 @@ const BUILT_IN_MODULES = { vuex: 'dist/vuex.esm-bundler.js', 'vue-i18n': 'dist/vue-i18n.esm-bundler.js', '@dcloudio/uni-app': 'dist/uni-app.es.js', - '@dcloudio/uni-stat': 'dist/uni-stat.es.js', '@dcloudio/uni-cloud': 'dist/uni-cloud.es.js', '@dcloudio/uni-i18n': 'dist/uni-i18n.es.js', '@dcloudio/uni-shared': 'dist/uni-shared.es.js', -- GitLab