Vue Language Tools v3.3.12 发布:改进不受信任 Vue 文件的安全处理
译注:本文翻译自 Vue Language Tools 官方 Release Notes,原文链接见文末。Vue Language Tools 是 Vue 官方维护的语言工具集,为 Volar、Vue 的 TypeScript 支持及 VS Code 扩展提供底层能力。
Vue Language Tools 于 2026 年 10 月 2 日发布 v3.3.12 版本。本次更新以安全修复为核心,同时包含多项功能增强、类型推断修复与性能优化,涉及 language-core、component-meta、typescript-plugin、tsc 及 vscode 等多个子模块。
安全修复
本次发布最值得关注的是 language-core 中对不受信任 Vue 文件处理方式的改进(commit cea0698)。该修复强化了语言核心在面对来源不可信的 Vue 文件时的处理逻辑,属于安全层面的加固。对于在编辑器或工具链中打开第三方 Vue 文件的开发者而言,这一改动降低了潜在风险。
功能增强
defineModel默认工厂首参类型推断(commit1be73b8):现在可以推断defineModel默认工厂函数的第一个参数类型,改善类型提示体验。- 重复 CSS 模块名检测(commit
d41d919、ffb85e5):新增对重复 CSS 模块名的报告能力,且覆盖非标识符名称的情况。
类型与模板修复
本次修复集中在类型推断与模板分析的准确性上:
- 使用
withDefaults时保留联合类型 props(commit084f30f); - 在块注释场景下,保持仅用于推断的 props 字符串为单行(commit
55ca36f); - 支持不带
.value调用模板绑定(commit7ad4a94); - 修复模板绑定分析中类型守卫在 tsc bundle 中缺失的问题(commit
e743e80); - 补齐指令钩子签名,以检查短参数指令绑定(commit
94052b8); vueCompilerOptions.plugins现在会覆盖继承的插件列表,而非在解析时去重(commit4fa9e97、c0e5d2e);- 消除代码生成、scoped class 别名及复合事件处理器中合成的忽略注释(commit
dbcb7de、eccb74a、612ae32); - 修正模板映射边界并消除未映射的诊断信息(commit
04954dd、8c85e38、af7a194、90f8207); - 阻止 typedef JSDoc 泄漏到生成的 dts 文件中(commit
d4d4139)。
性能优化
- 预编译属性 glob 匹配器(commit
7d2e603),减少运行时匹配开销; - VS Code 扩展降低专注模式开销(commit
b0936d1)。
其他模块修复
| 模块 | 修复内容 | commit |
|---|---|---|
| component-meta | 不再将 JS Vue 文件按 TS 检查 | 045a6a7 |
| typescript-plugin | 在无样式文件中不中止引用范围修正 | e46126c |
| tsc | 防止增量构建时 watch 模式崩溃 | a59da36 |
贡献者
本次发布感谢以下贡献者:@johnsoncodehk、@serkodev、@KazariEX、@00200200、@camonunez、@Cherry、@hungateJoseph、@uturnr、@ValentinYoushkevich、@xia-chao。
原文链接
https://github.com/vuejs/language-tools/releases/tag/v3.3.12