From 1571c55b078e030ad7bfd2448eff52f879ffab04 Mon Sep 17 00:00:00 2001 From: Dunqing Date: Mon, 22 May 2023 21:17:43 +0800 Subject: [PATCH 1/2] fix(astro): incorrect path --- packages/astro/src/index.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/astro/src/index.ts b/packages/astro/src/index.ts index c2d2370d24..6a2fb58356 100644 --- a/packages/astro/src/index.ts +++ b/packages/astro/src/index.ts @@ -19,11 +19,16 @@ function AstroVitePlugin(options: AstroVitePluginOptions): Plugin { name: 'unocss:astro', apply: 'serve', enforce: 'pre', - resolveId(id, importer) { + async resolveId(id, importer) { if (id === UNO_INJECT_ID) return id - if (importer?.endsWith(UNO_INJECT_ID)) - return `${id}${id.includes('?') ? '&' : '?'}${UNO_QUERY_KEY}` + if (importer?.endsWith(UNO_INJECT_ID)) { + const resolved = await this.resolve(id, importer, { skipSelf: true }) + if (resolved) { + const fsPath = resolved.id + return `${fsPath}${fsPath.includes('?') ? '&' : '?'}${UNO_QUERY_KEY}` + } + } }, load(id, options) { if (id.endsWith(UNO_INJECT_ID)) From 6e001129134d40868aaa8c3dfbe543612d76bd45 Mon Sep 17 00:00:00 2001 From: Dunqing Date: Mon, 22 May 2023 21:41:37 +0800 Subject: [PATCH 2/2] fix: build failed --- packages/astro/src/index.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/astro/src/index.ts b/packages/astro/src/index.ts index 6a2fb58356..84a5143e4a 100644 --- a/packages/astro/src/index.ts +++ b/packages/astro/src/index.ts @@ -4,7 +4,7 @@ import type { AstroIntegration } from 'astro' import type { VitePluginConfig } from '@unocss/vite' import VitePlugin from '@unocss/vite' import type { UserConfigDefaults } from '@unocss/core' -import type { Plugin } from 'vite' +import type { Plugin, ResolvedConfig } from 'vite' const UNO_INJECT_ID = 'uno-astro' const UNO_QUERY_KEY = 'uno-with-astro-key' @@ -15,14 +15,19 @@ interface AstroVitePluginOptions { function AstroVitePlugin(options: AstroVitePluginOptions): Plugin { const { injects } = options + + let config: ResolvedConfig + return { name: 'unocss:astro', - apply: 'serve', enforce: 'pre', + configResolved(_config) { + config = _config + }, async resolveId(id, importer) { if (id === UNO_INJECT_ID) return id - if (importer?.endsWith(UNO_INJECT_ID)) { + if (importer?.endsWith(UNO_INJECT_ID) && config && config.command === 'serve') { const resolved = await this.resolve(id, importer, { skipSelf: true }) if (resolved) { const fsPath = resolved.id