diff --git a/packages/kit/src/template.ts b/packages/kit/src/template.ts index 8ca9360773..4437061e56 100644 --- a/packages/kit/src/template.ts +++ b/packages/kit/src/template.ts @@ -200,7 +200,6 @@ export async function _generateTypes (nuxt: Nuxt) { /* Decorator support */ ...useDecorators ? { - useDefineForClassFields: false, experimentalDecorators: false, } : {}, diff --git a/packages/schema/src/config/esbuild.ts b/packages/schema/src/config/esbuild.ts index e675dc74ba..5c54212b00 100644 --- a/packages/schema/src/config/esbuild.ts +++ b/packages/schema/src/config/esbuild.ts @@ -9,6 +9,19 @@ export default defineResolvers({ * @type {import('esbuild').TransformOptions} */ options: { + target: { + $resolve: async (val, get) => { + if (typeof val === 'string') { + return val + } + // https://github.com/vitejs/vite-plugin-vue/issues/528 + const useDecorators = await get('experimental').then(r => r?.decorators === true) + if (useDecorators) { + return 'es2024' + } + return 'esnext' + }, + }, jsxFactory: 'h', jsxFragment: 'Fragment', tsconfigRaw: { @@ -19,12 +32,12 @@ export default defineResolvers({ if (!useDecorators) { return val } - return defu(val, { + // Force experimentalDecorators to false if decorators are enabled + return defu({ compilerOptions: { - useDefineForClassFields: false, experimentalDecorators: false, }, - } satisfies TransformOptions['tsconfigRaw']) + } satisfies TransformOptions['tsconfigRaw'], val) }, }, },