diff --git a/packages/uni-cli-shared/src/json/mp/jsonFile.ts b/packages/uni-cli-shared/src/json/mp/jsonFile.ts index 26279cb85e1286b45d0e446296794627d0e45112..f2dc2e5e9a7a97430b109f671422a16b0b89766a 100644 --- a/packages/uni-cli-shared/src/json/mp/jsonFile.ts +++ b/packages/uni-cli-shared/src/json/mp/jsonFile.ts @@ -37,7 +37,7 @@ export function normalizeJsonFilename(filename: string) { export function findChangedJsonFiles() { const changedJsonFiles = new Map() function findChangedFile(filename: string, json: Record) { - const newJson = extend({}, json) + const newJson = JSON.parse(JSON.stringify(json)) if (!newJson.usingComponents) { newJson.usingComponents = {} } diff --git a/packages/uni-cli-shared/src/json/mp/pages.ts b/packages/uni-cli-shared/src/json/mp/pages.ts index 23dac94cef819c0595c35ee1f08d29509f5b85b9..a91f2a9d5739d8283e624b3e2b5259d672657159 100644 --- a/packages/uni-cli-shared/src/json/mp/pages.ts +++ b/packages/uni-cli-shared/src/json/mp/pages.ts @@ -119,11 +119,19 @@ function parsePagesJson( // window if (pagesJson.globalStyle) { - appJson.window = parseWindowOptions( + const windowOptions = parseWindowOptions( pagesJson.globalStyle, platform, windowOptionsMap ) + const { usingComponents } = windowOptions as PageWindowOptions + if (usingComponents) { + delete (windowOptions as PageWindowOptions).usingComponents + appJson.usingComponents = usingComponents + } else { + delete appJson.usingComponents + } + appJson.window = windowOptions } // tabBar @@ -138,7 +146,7 @@ function parsePagesJson( appJson.tabBar = tabBar } } - ;['preloadRule', 'workers', 'usingComponents'].forEach((name) => { + ;['preloadRule', 'workers'].forEach((name) => { if (hasOwn(pagesJson, name)) { appJson[name] = pagesJson[name] }