vite-plugin-vue icon indicating copy to clipboard operation
vite-plugin-vue copied to clipboard

decorators are not transformed with `useDefineForClassFields: true`

Open danielroe opened this issue 10 months ago • 2 comments

Related plugins

Describe the bug

When useDefineForClassFields is not explicitly set to false, decorators are not transformed at all within the vue plugin

context: https://discord.com/channels/473401852243869706/1080872789940121732/1340948843486904330

Reproduction

https://stackblitz.com/edit/vitejs-vite-42jy4nh9?file=src/App.vue,tsconfig.json

Steps to reproduce

No response

System Info

System:
    OS: Linux 5.0 undefined
    CPU: (8) x64 Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
    Memory: 0 Bytes / 0 Bytes
    Shell: 1.0 - /bin/jsh
  Binaries:
    Node: 18.20.3 - /usr/local/bin/node
    Yarn: 1.22.19 - /usr/local/bin/yarn
    npm: 10.2.3 - /usr/local/bin/npm
    pnpm: 8.15.6 - /usr/local/bin/pnpm
  npmPackages:
    @vitejs/plugin-vue: ^5.2.1 => 5.2.1 
    vite: ^6.1.0 => 6.1.0

Used Package Manager

npm

Logs

No response

Validations

danielroe avatar Feb 17 '25 15:02 danielroe

duplicate of #430

edison1105 avatar Feb 18 '25 01:02 edison1105

While it might be a duplicate, the main problem isn't solved yet.

A workaround is setting the esbuild target manually (and the problem only affects dev anyway):

  esbuild: {
    target: 'es2020' // Also works with 'es2024'
  },

https://stackblitz.com/edit/vitejs-vite-plugin-vue-528-workaround?file=tsconfig.json,src%2FApp.vue,vite.config.js

TheAlexLichter avatar Feb 19 '25 19:02 TheAlexLichter