From a2d4ee9bbfd6bfce880382f0bf6f8dd8f3397a2d Mon Sep 17 00:00:00 2001 From: icssoa <615206459@qq.com> Date: Wed, 17 Dec 2025 11:21:02 +0800 Subject: [PATCH] =?UTF-8?q?uniappx=20=E6=B7=BB=E5=8A=A0=E7=BC=96=E8=AF=91?= =?UTF-8?q?=E5=B9=B3=E5=8F=B0=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/vite-plugin/dist/config.d.ts | 1 + packages/vite-plugin/dist/index.js | 10 ++++++++-- packages/vite-plugin/package.json | 2 +- packages/vite-plugin/src/config.ts | 1 + packages/vite-plugin/src/index.ts | 3 +++ packages/vite-plugin/src/uniapp-x/tailwind.ts | 12 +++++++----- 6 files changed, 21 insertions(+), 8 deletions(-) diff --git a/packages/vite-plugin/dist/config.d.ts b/packages/vite-plugin/dist/config.d.ts index 052e1c3..7674c2f 100644 --- a/packages/vite-plugin/dist/config.d.ts +++ b/packages/vite-plugin/dist/config.d.ts @@ -35,4 +35,5 @@ export declare const config: { isPlugin: boolean; }; clean: boolean; + utsPlatform: string; }; diff --git a/packages/vite-plugin/dist/index.js b/packages/vite-plugin/dist/index.js index d21d072..9d64378 100644 --- a/packages/vite-plugin/dist/index.js +++ b/packages/vite-plugin/dist/index.js @@ -60,6 +60,7 @@ isPlugin: false, }, clean: false, + utsPlatform: "web", }; // 根目录 @@ -1942,6 +1943,9 @@ if (typeof window !== 'undefined') { * 转换类名中的特殊字符为安全字符 */ function toSafeClass(className) { + if (config.utsPlatform == "web") { + return className; + } if (className.includes(":host")) { return className; } @@ -2022,7 +2026,7 @@ if (typeof window !== 'undefined') { return; } // 转换选择器为安全的类名格式 - rule.selector = toSafeClass(rule.selector.replace(/\\/g, "")); + rule.selector = toSafeClass(rule.selector); }, // 处理声明规则 Declaration(decl) { @@ -2209,7 +2213,7 @@ if (typeof window !== 'undefined') { _node.slice(0, insertIndex) + ` :class="{}"` + _node.slice(insertIndex); } // 获取暗黑模式类名 - let darkClassNames = classNames.filter((name) => name.startsWith("dark-colon-")); + let darkClassNames = classNames.filter((name) => name.startsWith("dark-colon-") || name.startsWith("dark:")); // 插件模式,不支持 dark: if (config.uniapp.isPlugin) { darkClassNames = []; @@ -2448,6 +2452,8 @@ if (typeof window !== 'undefined') { // 请求地址 config.reqUrl = getProxyTarget(options.proxy); if (config.type == "uniapp-x") { + // 编译平台 + config.utsPlatform = process.env.UNI_UTS_PLATFORM ?? "web"; // 是否纯净版 config.clean = options.clean ?? true; if (config.clean) { diff --git a/packages/vite-plugin/package.json b/packages/vite-plugin/package.json index cf3922e..5852a25 100644 --- a/packages/vite-plugin/package.json +++ b/packages/vite-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@cool-vue/vite-plugin", - "version": "8.2.19", + "version": "8.2.20", "description": "cool-admin、cool-uni builder", "types": "./dist/index.d.ts", "main": "/dist/index.js", diff --git a/packages/vite-plugin/src/config.ts b/packages/vite-plugin/src/config.ts index 1425491..7292230 100644 --- a/packages/vite-plugin/src/config.ts +++ b/packages/vite-plugin/src/config.ts @@ -57,4 +57,5 @@ export const config = { isPlugin: false, }, clean: false, + utsPlatform: "web", }; diff --git a/packages/vite-plugin/src/index.ts b/packages/vite-plugin/src/index.ts index 8eb6188..d704c85 100644 --- a/packages/vite-plugin/src/index.ts +++ b/packages/vite-plugin/src/index.ts @@ -15,6 +15,9 @@ export function cool(options: Config.Options) { config.reqUrl = getProxyTarget(options.proxy); if (config.type == "uniapp-x") { + // 编译平台 + config.utsPlatform = process.env.UNI_UTS_PLATFORM ?? "web"; + // 是否纯净版 config.clean = options.clean ?? true; diff --git a/packages/vite-plugin/src/uniapp-x/tailwind.ts b/packages/vite-plugin/src/uniapp-x/tailwind.ts index e081153..748a5f3 100644 --- a/packages/vite-plugin/src/uniapp-x/tailwind.ts +++ b/packages/vite-plugin/src/uniapp-x/tailwind.ts @@ -15,6 +15,10 @@ import { * 转换类名中的特殊字符为安全字符 */ export function toSafeClass(className: string): string { + if (config.utsPlatform == "web") { + return className; + } + if (className.includes(":host")) { return className; } @@ -110,9 +114,7 @@ function postcssPlugin(): Plugin { } // 转换选择器为安全的类名格式 - rule.selector = toSafeClass( - rule.selector.replace(/\\/g, ""), - ); + rule.selector = toSafeClass(rule.selector); }, // 处理声明规则 @@ -343,8 +345,8 @@ function transformPlugin(): Plugin { } // 获取暗黑模式类名 - let darkClassNames = classNames.filter((name) => - name.startsWith("dark-colon-"), + let darkClassNames = classNames.filter( + (name) => name.startsWith("dark-colon-") || name.startsWith("dark:"), ); // 插件模式,不支持 dark: