diff --git a/packages/uni-cli-shared/src/json/mp/jsonFile.ts b/packages/uni-cli-shared/src/json/mp/jsonFile.ts index 2139df05c9ff00b4a416972e8202abef8577da9c..7cb94a7214562bb3aebbb3b799a46c512b7a14df 100644 --- a/packages/uni-cli-shared/src/json/mp/jsonFile.ts +++ b/packages/uni-cli-shared/src/json/mp/jsonFile.ts @@ -64,12 +64,16 @@ export function findChangedJsonFiles( newJson.usingComponents = {} } extend(newJson.usingComponents, jsonUsingComponentsCache.get(filename)) - const usingComponents = newJson.usingComponents as Record // 格式化为相对路径,这样作为分包也可以直接运行 // app.json mp-baidu 在 win 不支持相对路径。所有平台改用绝对路径 if (filename !== 'app') { + let usingComponents = newJson.usingComponents as Record + + const globalUsingComponents = appJsonCache?.usingComponents ?? {} + // 如果小程序不支持 global 的 usingComponents if (!supportGlobalUsingComponents) { - // TODO 从 appJsonCache 中读取 usingComponents 并 补充到 usingComponents 中 + // 从 appJsonCache 中读取全局的 usingComponents 并补充到子组件 usingComponents 中 + usingComponents = { ...globalUsingComponents, ...newJson.usingComponents} } Object.keys(usingComponents).forEach((name) => { const componentFilename = usingComponents[name] @@ -80,6 +84,7 @@ export function findChangedJsonFiles( ) } }) + newJson.usingComponents = usingComponents } const jsonStr = JSON.stringify(newJson, null, 2)