From 55707bea0106c7017d1447e321a13d60d970f754 Mon Sep 17 00:00:00 2001 From: tianteng Date: Sat, 7 Dec 2024 14:07:39 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=A4=84=E7=90=86=E5=85=A8=E5=B1=80?= =?UTF-8?q?=E6=A0=B7=E5=BC=8F=E6=96=87=E4=BB=B6=E6=A0=B7=E5=BC=8F=E4=B8=8D?= =?UTF-8?q?=E5=AD=98=E5=9C=A8=E6=97=B6=20=E5=BC=95=E5=85=A5common=20chunks?= =?UTF-8?q?=20=E4=B8=AD=E7=9A=84=E5=85=AC=E5=85=B1=E6=A0=B7=E5=BC=8F?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/taro-vite-runner/src/mini/style.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/taro-vite-runner/src/mini/style.ts b/packages/taro-vite-runner/src/mini/style.ts index c4b0a67b32a8..79bb60c80fc9 100644 --- a/packages/taro-vite-runner/src/mini/style.ts +++ b/packages/taro-vite-runner/src/mini/style.ts @@ -9,6 +9,7 @@ export default function (viteCompilerContext: ViteMiniCompilerContext): PluginOp name: 'taro:vite-style', generateBundle (_opts, bundle) { if (viteCompilerContext) { + const sourceDir = viteCompilerContext.sourceDir const nativeStyleExt = viteCompilerContext.fileType.style const appStyleFileName = `app${nativeStyleExt}` const commonStyleChunks = viteCompilerContext.commonChunks.map(item => `${item}${nativeStyleExt}`) @@ -37,7 +38,6 @@ export default function (viteCompilerContext: ViteMiniCompilerContext): PluginOp // 小程序全局样式文件中引入 common chunks 中的公共样式文件 if (appStyleChunk) { const APP_STYLE_NAME = 'app-origin' + nativeStyleExt - const sourceDir = viteCompilerContext.sourceDir this.emitFile({ type: 'asset', fileName: APP_STYLE_NAME, @@ -46,6 +46,16 @@ export default function (viteCompilerContext: ViteMiniCompilerContext): PluginOp appStyleChunk.source = commonStyleFileNames.reduce((prev, current) => { return prev + `@import "${path.relative(sourceDir, path.join(sourceDir, current))}";\n` }, `@import "${APP_STYLE_NAME}";\n`) + } else { + // 处理全局样式文件样式不存在时 引入common chunks 中的公共样式文件 + const source = commonStyleFileNames.reduce((prev, current) => { + return prev + `@import "${path.relative(sourceDir, path.join(sourceDir, current))}";\n`; + }, ''); + this.emitFile({ + type: 'asset', + fileName: appStyleFileName, + source + }); } } }