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