Skip to content

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 默认工厂首参类型推断(commit 1be73b8):现在可以推断 defineModel 默认工厂函数的第一个参数类型,改善类型提示体验。
  • 重复 CSS 模块名检测(commit d41d919、ffb85e5):新增对重复 CSS 模块名的报告能力,且覆盖非标识符名称的情况。

类型与模板修复 ​

本次修复集中在类型推断与模板分析的准确性上:

  • 使用 withDefaults 时保留联合类型 props(commit 084f30f);
  • 在块注释场景下,保持仅用于推断的 props 字符串为单行(commit 55ca36f);
  • 支持不带 .value 调用模板绑定(commit 7ad4a94);
  • 修复模板绑定分析中类型守卫在 tsc bundle 中缺失的问题(commit e743e80);
  • 补齐指令钩子签名,以检查短参数指令绑定(commit 94052b8);
  • vueCompilerOptions.plugins 现在会覆盖继承的插件列表,而非在解析时去重(commit 4fa9e97、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