Vue 官方語言工具 2.0 來了,已正式更名!
近日,Vue 官方語言工具發(fā)布了 2.0 版本,該版本已經(jīng)將 VS Code 插件名稱由Volar Language Features (Volar) 改為了 Vue - Official,TypeScript Vue Plugin擴展也已經(jīng)被棄用。下面就來看看該版本都帶來了哪些更新。
新功能
- 支持通過拖拽導入組件
混合模式:
- 棄用了 Takeover 模式,但擴展現(xiàn)在默認擁有與 Takeover 模式相當?shù)男阅堋?/li>
- TypeScript 語言支持已從 Vue 語言服務器遷移至 TypeScript 插件,實現(xiàn)了所有 TypeScript 編輯器功能的集成。若內(nèi)部 TypeScript 擴展被禁用或安裝了“TypeScript Vue Plugin”擴展,將發(fā)出警告。
- 使用 TypeScript LanguageService 將服務遷移至命名管道服務器。
- 在 TypeScript 插件中,重新實現(xiàn)了組件標簽的語義令牌和自動導入修補程序,并確保了在請求自動插入.value時,tsserver處于就緒狀態(tài)。
- language-server:不再支持ignoreTriggerCharacters、reverseConfigFilePriority和fullCompletionList選項。
- tsc:支持vueCompilerOptions.extensions選項
- language-core:實現(xiàn)了與 Vue 3.4 類型更改的兼容性
- 升級到了 Volar 2.1 版本,使擴展與 Volar Labs v2 兼容。在 vscode 中,移除了volar.format.initialIndent選項,并引入了三個新選項:vue.format.template.initialIndent、vue.format.script.initialIndent和vue.format.style.initialIndent。
重構(gòu)
tsc:基于官方 TypeScript API 進行了重寫,不再依賴TypeScript模塊。除此之外,還棄用了hooks API,以簡化代碼結(jié)構(gòu)和提高可維護性。
language-core:
- 基于 Generator 實現(xiàn)了代碼生成功能
- 在單個虛擬文件中生成全局類型
- 實現(xiàn)了插件 API v2
- 忽略了 Markdown 文件中的嵌套代碼塊
- 移除了experimentalAdditionalLanguageModules和已棄用的API
language-service:
- 使服務插件獨立于項目上下文
- 不再支持volar.config.js配置文件
- typescript-plugin: 將包重命名為@vue/typescript-plugin
- 用 typescript 替換了 typescript/lib/tsserverlibrary 的導入
- 將源代碼從src目錄移至lib目錄
小插曲
在 Vue-Official 升級到 2.0 之后,不少用戶反饋 2.x 版本啟動后會崩潰。
圖片
作者目前只給出了兩個臨時解決方案:
- 嘗試使用 VSCode Insiders,或者暫時降級到 1.8.27。
- 如果出現(xiàn)誤報,可以嘗試在工作區(qū)根目錄中創(chuàng)建一個空的 jsconfig。
希望能盡快修復這個問題,目前看起來影響還是挺大的。