fix(nuxt): register/scan plugins with jsx/tsx extensions (#26230)

This commit is contained in:
Anthony Aslangul 2024-03-13 23:50:15 +01:00 committed by GitHub
parent e889a7df59
commit 2baaab9893
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 5 additions and 5 deletions

View File

@ -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)))

View File

@ -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'

View File

@ -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]"', '() => <span>JSX</span>') : JSON.stringify(value)},`),
'})'
].join('\n'))