From e4aafafe57efbae0176253a2505c31e3a256460f Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 10 Apr 2026 12:04:05 +0000 Subject: [PATCH] refactor: use rolldown inject config for composable auto-imports during build Replace the iles:composables transform plugin with Vite's build.rolldownOptions.transform.inject config option for builds, falling back to the existing transform-based auto-import for dev mode where the rolldown inject option is not available. https://claude.ai/code/session_01NZyaWN67FYx9xFUQP6nEFG --- packages/iles/src/node/plugin/composables.ts | 4 ++++ packages/iles/src/node/plugin/plugin.ts | 12 +++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/packages/iles/src/node/plugin/composables.ts b/packages/iles/src/node/plugin/composables.ts index f3bf8f16..cf740bb1 100644 --- a/packages/iles/src/node/plugin/composables.ts +++ b/packages/iles/src/node/plugin/composables.ts @@ -14,6 +14,10 @@ const composables = [ 'useRoute', ] +export const composablesInjectConfig: Record = Object.fromEntries( + composables.map(name => [name, ['iles', name]]), +) + export async function autoImportComposables (code: string, id: string): Promise { const matches = Array.from(code.matchAll(composableUsageRegex)) if (matches.length === 0) return diff --git a/packages/iles/src/node/plugin/plugin.ts b/packages/iles/src/node/plugin/plugin.ts index e3749217..c4641400 100644 --- a/packages/iles/src/node/plugin/plugin.ts +++ b/packages/iles/src/node/plugin/plugin.ts @@ -14,7 +14,7 @@ import { parseId } from './parse' import { wrapIslandsInSFC, wrapLayout } from './wrap' import { extendSite } from './site' import { detectMDXComponents } from './markdown' -import { autoImportComposables, writeComposablesDTS } from './composables' +import { autoImportComposables, composablesInjectConfig, writeComposablesDTS } from './composables' import documents from './documents' function isMarkdown (path: string) { @@ -159,7 +159,17 @@ export default function IslandsPlugins (appConfig: AppConfig): PluginOption[] { { name: 'iles:composables', enforce: 'post', + config () { + return { + build: { + rolldownOptions: { + transform: { inject: composablesInjectConfig }, + }, + }, + } + }, async transform (code, id) { + if (isBuild) return if (!id.startsWith(appConfig.srcDir)) return const { path, query } = parseId(id)