diff --git a/packages/nuxt/src/core/app.ts b/packages/nuxt/src/core/app.ts index 24aa1e493375..67cc4d54c6e9 100644 --- a/packages/nuxt/src/core/app.ts +++ b/packages/nuxt/src/core/app.ts @@ -150,8 +150,8 @@ export async function resolveApp (nuxt: Nuxt, app: NuxtApp) { ...(config.plugins || []), ...config.srcDir ? await resolveFiles(config.srcDir, [ - `${pluginDir}/*.{ts,js,mjs,cjs,mts,cts}`, - `${pluginDir}/*/index.*{ts,js,mjs,cjs,mts,cts}` // TODO: remove, only scan top-level plugins #18418 + `${pluginDir}/*{${nuxt.options.extensions.join(',')}}`, + `${pluginDir}/*/index{${nuxt.options.extensions.join(',')}}` // TODO: remove, only scan top-level plugins #18418 ]) : [] ].map(plugin => normalizePlugin(plugin as NuxtPlugin))) diff --git a/packages/nuxt/src/core/plugins/plugin-metadata.ts b/packages/nuxt/src/core/plugins/plugin-metadata.ts index b77678caa36c..bd29f61a38a9 100644 --- a/packages/nuxt/src/core/plugins/plugin-metadata.ts +++ b/packages/nuxt/src/core/plugins/plugin-metadata.ts @@ -47,7 +47,7 @@ export async function extractMetadata (code: string) { if (metaCache[code]) { return metaCache[code] } - const js = await transform(code, { loader: 'ts' }) + const js = await transform(code, { loader: 'tsx' }) walk(parse(js.code, { sourceType: 'module', ecmaVersion: 'latest' diff --git a/packages/nuxt/test/plugin-metadata.test.ts b/packages/nuxt/test/plugin-metadata.test.ts index 2d12a2f403dc..09a88f0827ca 100644 --- a/packages/nuxt/test/plugin-metadata.test.ts +++ b/packages/nuxt/test/plugin-metadata.test.ts @@ -10,7 +10,7 @@ describe('plugin-metadata', () => { name: 'test', enforce: 'post', hooks: { 'app:mounted': () => {} }, - setup: () => {}, + setup: () => { return { provide: { jsx: '[JSX]' } } }, order: 1 }) @@ -19,7 +19,7 @@ describe('plugin-metadata', () => { const meta = await extractMetadata([ 'export default defineNuxtPlugin({', - ...obj.map(([key, value]) => `${key}: ${typeof value === 'function' ? value.toString() : JSON.stringify(value)},`), + ...obj.map(([key, value]) => `${key}: ${typeof value === 'function' ? value.toString().replace('"[JSX]"', '() => JSX') : JSON.stringify(value)},`), '})' ].join('\n'))