diff --git a/packages/uni-cli-shared/src/vite/plugins/vitejs/plugins/css.ts b/packages/uni-cli-shared/src/vite/plugins/vitejs/plugins/css.ts index 60a3453719682204501e292d92bc8bdbf5922550..914c0104b3f73764b863372b95639975809960a1 100644 --- a/packages/uni-cli-shared/src/vite/plugins/vitejs/plugins/css.ts +++ b/packages/uni-cli-shared/src/vite/plugins/vitejs/plugins/css.ts @@ -190,11 +190,19 @@ function normalizeCssChunkFilename(id: string) { function findCssModuleIds( this: PluginContext, moduleId: string, - cssModuleIds?: Set + cssModuleIds?: Set, + seen?: Set ) { if (!cssModuleIds) { cssModuleIds = new Set() } + if (!seen) { + seen = new Set() + } + if (seen.has(moduleId)) { + return cssModuleIds + } + seen.add(moduleId) const moduleInfo = this.getModuleInfo(moduleId) if (moduleInfo) { moduleInfo.importedIds.forEach((id) => { @@ -205,7 +213,7 @@ function findCssModuleIds( if (cssLangRE.test(id) && !commonjsProxyRE.test(id)) { cssModuleIds!.add(id) } else { - findCssModuleIds.call(this, id, cssModuleIds) + findCssModuleIds.call(this, id, cssModuleIds, seen) } }) }