vpx: support ECMAScript decorators after upstream Oxc support lands
維護者通常 1 天內回覆
@fengmk2 已經在處理了。
開始於 2026年10月30日。
評估
這個 Issue 還沒有評估資料。
描述
vpx currently supports legacy decorators with "experimentalDecorators": true, including emitDecoratorMetadata. Standard ECMAScript decorators and accessor fields remain unsupported, leaving a compatibility gap for scripts moving from tsx.
Oxc’s Q4 plan includes implementing and stabilizing ECMAScript decorators. This issue tracks their adoption in the Vite+ script loader once upstream support is available.
With experimentalDecorators omitted or false, this script should run successfully:
function report(_value: Function, context: ClassDecoratorContext) {
console.log(context.kind, context.name);
}
@report
class Example {}
Both commands should print class Example:
vpx ./decorators.ts
node --import vite-plus/register ./decorators.ts
Follow-up work:
- Link the upstream implementation and first supported release. Update the compatible Oxc, vendored
oxc-node, and@oxc-project/runtimeversions. - Update
oxc-nodeto enable the standard decorator transform and replace its current rejection. Verify any required class transformations and runtime helpers. - Preserve legacy behavior when
experimentalDecoratorsistrue, including existing metadata support. Keep standard decorators distinct from legacyemitDecoratorMetadata, as described in the TypeScript documentation. - Verify decorated and undecorated auto-accessors explicitly. Track any remaining upstream limitation before claiming full support.
- Add snapshots with visible runtime output for local/global
vpxandvite-plus/register, covering ESM/CommonJS, both loader hook modes, decorator initialization order, and helper resolution. Replace the existing unsupported-decorator failure case and retain legacy regression coverage. - Add a real
tsx→vpxmigration snapshot that compares decorator behavior before and after migration. - Update the supported-syntax documentation,
experimentalDecoratorsdefaults, migration notes, and RFC compatibility table.
Keep this issue open until support is integrated, tested, and released in Vite+. Completion of the upstream roadmap item alone does not complete this follow-up.
Related: #1556 — Auto-accessor syntax is not transpiled, which concerns the browser development pipeline.
- 主要語言
- Rust
- 星號
- 6.5k
- 分支
- 297
- 平均合併
- 23 小時 42 分鐘
- 30 天內合併 PR
- 233
環境準備
在瀏覽器裡用你自己的 GitHub 帳號啟動這個專案的開發容器。
- 沒有 Dockerfile 或 Docker Compose 檔案
- 沒有 Pull Request 範本
- 閱讀貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
voidzero-dev/vite-plus 的其他 Issue
-
triage: not actionable
難度 2/5 1-3 小時 新手友好度 85/100
voidzero-dev/vite-plus#3296 · 1 則留言 ·
維護者通常 1 天內回覆
-
pending triage
難度 2/5 1-3 小時 新手友好度 63/100
voidzero-dev/vite-plus#3235 ·
維護者通常 1 天內回覆
-
Docker guide: the runtime stage needs libatomic1 for Node.js 25 and later可能已有人在做 @kshanxs 於 7 天前認領。 未關閉documentation
難度 2/5 1-3 小時 新手友好度 84/100
voidzero-dev/vite-plus#3219 · 2 則留言 · 1 個 reaction ·
維護者通常 1 天內回覆
-
pending triage
難度 2/5 1-3 小時 新手友好度 72/100
voidzero-dev/vite-plus#2882 · 2 則留言 ·
維護者通常 1 天內回覆
-
`vp migrate`: warn when the workspace uses Turborepo可能已有人在做 @voidzero-bot 今天認領。 未關閉- P3: minor bug enhancement triage: fix verified
難度 2/5 1-3 小時 新手友好度 30/100
voidzero-dev/vite-plus#3298 · 1 則留言 ·
維護者通常 1 天內回覆
查看 voidzero-dev/vite-plus 的全部 Issue
相似的 Issue
-
Published SDL drops input-field default values: a non-null field with a default renders as required未關閉
難度 2/5 1-3 小時 新手友好度 75/100
維護者通常 1 天內回覆
-
色変記事を追加未關閉priority middle
難度 1/5 1 小時以內 新手友好度 62/100
KATO-Hiro/AtCoderClans#12955 ·
維護者通常 1 天內回覆
-
auto:doc-drift auto:producer
難度 2/5 1-3 小時 新手友好度 60/100
fritzprix/libr-agent#2458 ·
維護者通常 1 天內回覆
-
Flaky test: terminal parity an_exited_shell_says_how reads status before the exit is seen可能已有人在做 關聯的 PR 仍在進行中或已合併。 未關閉
難度 2/5 1-3 小時 新手友好度 72/100
yantrikos/yantrik-os#1048 ·
維護者通常 1 天內回覆
-
rust
難度 2/5 1-3 小時 新手友好度 80/100
vllm-project/vllm#64939 ·
維護者通常 1 天內回覆