From 47fa9e05e69e838579daf43fbf43c908cc7e2247 Mon Sep 17 00:00:00 2001 From: PeachScript Date: Mon, 13 Nov 2023 11:16:16 +0800 Subject: [PATCH] feat: check bundler before apply styled babel plugin --- packages/core/src/service/service.ts | 1 + packages/plugins/src/styled-components.ts | 3 +++ packages/preset-umi/src/features/appData/appData.ts | 1 + packages/preset-umi/src/features/vite/vite.ts | 6 ++++++ 4 files changed, 11 insertions(+) diff --git a/packages/core/src/service/service.ts b/packages/core/src/service/service.ts index e27afd92f339..0d1ca561725a 100644 --- a/packages/core/src/service/service.ts +++ b/packages/core/src/service/service.ts @@ -58,6 +58,7 @@ export class Service { mpa?: { entry?: { [key: string]: string }[]; }; + bundler?: string; [key: string]: any; } = {}; args: yParser.Arguments = { _: [], $0: '' }; diff --git a/packages/plugins/src/styled-components.ts b/packages/plugins/src/styled-components.ts index d415910ef406..1065b7660c11 100644 --- a/packages/plugins/src/styled-components.ts +++ b/packages/plugins/src/styled-components.ts @@ -20,6 +20,9 @@ export default (api: IApi) => { // dev: displayName // prod: minify api.modifyConfig((memo) => { + // only apply babel plugin in webpack and vite + if (!['webpack', 'vite'].includes(api.appData.bundler)) return memo; + const isProd = api.env === 'production'; const pluginConfig = { // https://github.com/styled-components/babel-plugin-styled-components/blob/f8e9fb480d1645be8be797d73e49686bdf98975b/src/utils/options.js#L11 diff --git a/packages/preset-umi/src/features/appData/appData.ts b/packages/preset-umi/src/features/appData/appData.ts index eadd864b6b5c..e00fe1fcd2ee 100644 --- a/packages/preset-umi/src/features/appData/appData.ts +++ b/packages/preset-umi/src/features/appData/appData.ts @@ -56,6 +56,7 @@ export default (api: IApi) => { memo.globalJS = globalJS; memo.overridesCSS = overridesCSS; memo.globalLoading = globalLoading; + memo.bundler = 'webpack'; const gitDir = findGitDir(api.paths.cwd); if (gitDir) { diff --git a/packages/preset-umi/src/features/vite/vite.ts b/packages/preset-umi/src/features/vite/vite.ts index ca8dcc9b3c7d..1a5e85c22987 100644 --- a/packages/preset-umi/src/features/vite/vite.ts +++ b/packages/preset-umi/src/features/vite/vite.ts @@ -11,6 +11,12 @@ export default (api: IApi) => { enableBy: api.EnableBy.config, }); + api.modifyAppData((memo) => { + memo.bundler = 'vite'; + + return memo; + }); + api.modifyConfig((memo) => { // like vite, use to pre-bundling dependencies in vite mode memo.alias['@fs'] = api.cwd;