Vue vscode 插件版本更新:写TS不需要装两个插件了

今天打开vue项目的时候,弹出警告 The "TypeScript Vue Plugin (Volar)" extension is no longer needed in version 2.0. Please uninstall it. 然后发现vue插件前几天更新了,翻译过来记录一下,原文链接

特性

  • 混合模式

    • Takeover 模式已弃用。扩展现在默认具有与 Takeover 模式相同的性能。
    • 将 TypeScript 语言支持从 Vue 语言服务器移至 TypeScript 插件 (#3788)
    • 集成了所有 TypeScript 编辑器功能
    • 当内部 TypeScript 扩展被禁用或安装了 "TypeScript Vue Plugin" 扩展时发出警告
    • 使用 TypeScript LanguageService 迁移到命名管道服务器 (#3908, #3916)
    • 不再报告 typescript.tsdk 重复注册错误
    • language-service: 在 TypeScript 插件中重新实现了组件标签语义令牌 (#3915)
    • language-service: 在 TypeScript 插件中重新实现了自动导入补丁 (#3917)
    • language-service: 在请求自动插入 .value 时确保 tsserver 准备就绪 (#3914)
  • 升级到 Volar 2.0 和 2.1 (#3736, #3906)

    • vscode: 扩展现在兼容 Volar Labs v2

    • vscode: 移除了 volar.format.initialIndent 选项,替换为 3 个新选项:

      • vue.format.template.initialIndent
      • vue.format.script.initialIndent
      • vue.format.style.initialIndent
    • language-server: 不再支持 ignoreTriggerCharactersreverseConfigFilePriorityfullCompletionList 选项

  • 支持组件拖放导入 (#3692)

  • tsc: 支持 vueCompilerOptions.extensions 选项 (#3800)

  • language-core: 实现了与 Vue 3.4 类型变更的兼容 (#3860)

修复

  • vscode: 防止在非 VS Code 编辑器中读取未定义的属性 (#3836)
  • vscode: 防止使用 TS 文件激活扩展
  • vscode: 更正了跟踪服务器 ID
  • language-core: 为 defineModel 实现了 emit 代码生成 (#3895)
  • language-core: 解决了与 Vue 2.7.16 过渡类型不兼容的问题 (#3882)
  • language-core: 在 Angular 绑定中排除了 vue 指令语法注入 (#3891)
  • component-type-helpers: 解决了 Vue 3.4.20 函数组件的推断问题

重构

  • 将 "Volar Language Features (Volar)" 扩展重命名为 "Vue - Official"
  • "TypeScript Vue Plugin" 扩展已弃用
  • 将源脚本从 src 移至 lib (#3913)
  • typescript/lib/tsserverlibrary 导入替换为 typescript
  • language-core: 基于 Generator 实现了代码生成 (#3778)
  • language-core: 在单个虚拟文件中生成全局类型 (#3803)
  • language-core: 实现了插件 API v2 (#3918)
  • language-core: 在 markdown 文件中忽略嵌套代码块 (#3839)
  • language-core: 移除了 experimentalAdditionalLanguageModules 和已弃用的 API (#3907)
  • language-service: 使服务插件独立于项目上下文
  • language-server: 不再支持 volar.config.js
  • component-meta: 重命名了 API
  • typescript-plugin: 将包重命名为 @vue/typescript-plugin (#3910)
  • tsc: 基于第一方 TS API 重写,不再依赖 TypeScript 模块 (#3795)
  • tsc: 弃用了钩子 API (#3793)

个人总结

这次改动对于使用 Volar 开发 Vue 应用的开发者来说影响颇大。首先,混合模式的引入和 Takeover 模式的弃用意味着开发者无需特别设置即可获得最佳性能,简化了配置过程。将 TypeScript 支持移到插件中,加上对 TypeScript 特性的全面集成,让开发者在使用 Vue 时能更流畅地使用 TypeScript,提高了开发效率。

Volar 升级到 2.0 和 2.1,带来的兼容性改进和新的格式化选项,使得代码的编写和维护变得更加便捷。特别是对于格式化配置的更新,现在开发的时候可以更细致地控制 Vue 文件中不同部分的格式化行为。另外,对组件拖放导入的支持,以及对 Vue 3.4 类型变化的兼容,都是针对现代 Vue 开发的实际需求做出的优化,提高了开发体验。

总的来说,这次更新让 Volar 在功能、性能和用户体验上都有了显著提升,对于 Vue 开发者来说是一次值得开心的改进。

相关推荐
陈随易1 小时前
农村程序员-关于小孩教育的思考
前端·后端·程序员
云深时现月1 小时前
jenkins使用cli发行uni-app到h5
前端·uni-app·jenkins
昨天今天明天好多天1 小时前
【Node.js]
前端·node.js
2401_857610031 小时前
深入探索React合成事件(SyntheticEvent):跨浏览器的事件处理利器
前端·javascript·react.js
_xaboy1 小时前
开源项目低代码表单设计器FcDesigner扩展自定义的容器组件.例如col
vue.js·低代码·开源·动态表单·formcreate·低代码表单·可视化表单设计器
_xaboy1 小时前
开源项目低代码表单设计器FcDesigner扩展自定义组件
vue.js·低代码·开源·动态表单·formcreate·可视化表单设计器
雾散声声慢1 小时前
前端开发中怎么把链接转为二维码并展示?
前端
熊的猫1 小时前
DOM 规范 — MutationObserver 接口
前端·javascript·chrome·webpack·前端框架·node.js·ecmascript
天农学子1 小时前
Easyui ComboBox 数据加载完成之后过滤数据
前端·javascript·easyui
mez_Blog1 小时前
Vue之插槽(slot)
前端·javascript·vue.js·前端框架·插槽