From 7f2da5099a99469193e5c68b4e96cd642fa61c06 Mon Sep 17 00:00:00 2001 From: fxy060608 Date: Thu, 17 Mar 2022 13:26:06 +0800 Subject: [PATCH] fix(mp-alipay): add subPackageBuildType (question/140742) --- packages/uni-cli-shared/src/json/mp/types.ts | 1 + packages/uni-mp-alipay/dist/uni.compiler.js | 5 +++++ packages/uni-mp-alipay/src/compiler/options.ts | 5 +++++ packages/uni-mp-vite/src/plugin/index.ts | 2 ++ packages/uni-mp-vite/src/plugins/pagesJson.ts | 3 ++- 5 files changed, 15 insertions(+), 1 deletion(-) diff --git a/packages/uni-cli-shared/src/json/mp/types.ts b/packages/uni-cli-shared/src/json/mp/types.ts index c63d57a73..257e9dc8a 100644 --- a/packages/uni-cli-shared/src/json/mp/types.ts +++ b/packages/uni-cli-shared/src/json/mp/types.ts @@ -125,4 +125,5 @@ export interface AppJson { lazyCodeLoading?: 'requiredComponents' | string singlePage?: SinglePage restartStrategy?: RestartStrategy + [name: string]: unknown } diff --git a/packages/uni-mp-alipay/dist/uni.compiler.js b/packages/uni-mp-alipay/dist/uni.compiler.js index 41507f601..727a72dac 100644 --- a/packages/uni-mp-alipay/dist/uni.compiler.js +++ b/packages/uni-mp-alipay/dist/uni.compiler.js @@ -221,6 +221,11 @@ const options = { darkmode: false, subpackages: true, plugins: true, + normalize(appJson) { + // 支付宝小程序默认主包,分包 js 模块不共享,会导致 getCurrentInstance,setCurrentInstance 不一致 + appJson.subPackageBuildType = 'shared'; + return appJson; + }, }, project: { filename: projectConfigFilename, diff --git a/packages/uni-mp-alipay/src/compiler/options.ts b/packages/uni-mp-alipay/src/compiler/options.ts index e45b30ef1..f8948fb76 100644 --- a/packages/uni-mp-alipay/src/compiler/options.ts +++ b/packages/uni-mp-alipay/src/compiler/options.ts @@ -102,6 +102,11 @@ export const options: UniMiniProgramPluginOptions = { darkmode: false, subpackages: true, plugins: true, + normalize(appJson) { + // 支付宝小程序默认主包,分包 js 模块不共享,会导致 getCurrentInstance,setCurrentInstance 不一致 + appJson.subPackageBuildType = 'shared' + return appJson + }, }, project: { filename: projectConfigFilename, diff --git a/packages/uni-mp-vite/src/plugin/index.ts b/packages/uni-mp-vite/src/plugin/index.ts index 9a4fdf156..8e87656cd 100644 --- a/packages/uni-mp-vite/src/plugin/index.ts +++ b/packages/uni-mp-vite/src/plugin/index.ts @@ -10,6 +10,7 @@ import { MiniProgramCompilerOptions, initPostcssPlugin, parseRpx2UnitOnce, + AppJson, } from '@dcloudio/uni-cli-shared' import type { SFCDescriptor, @@ -58,6 +59,7 @@ export interface UniMiniProgramPluginOptions { * 是否支持发行插件 */ plugins?: boolean + normalize?: (appJson: AppJson) => AppJson } project?: { filename: string diff --git a/packages/uni-mp-vite/src/plugins/pagesJson.ts b/packages/uni-mp-vite/src/plugins/pagesJson.ts index 618e446bf..a3655e554 100644 --- a/packages/uni-mp-vite/src/plugins/pagesJson.ts +++ b/packages/uni-mp-vite/src/plugins/pagesJson.ts @@ -69,7 +69,8 @@ export function uniPagesJsonPlugin( if (options.json?.formatAppJson) { options.json.formatAppJson(appJson, manifestJson, pageJsons) } - addMiniProgramAppJson(appJson) + const { normalize } = options.app + addMiniProgramAppJson(normalize ? normalize(appJson) : appJson) Object.keys(pageJsons).forEach((name) => { addMiniProgramPageJson(name, pageJsons[name]) }) -- GitLab