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)