两天前,Vue - Official团队发布了2.0.7版本更新,混合模式 (Hybrid Mode)这一新特性默认关闭。混合模式,作为Vue 2.0的亮点功能,本旨在优化开发流程,提升开发效率。然而,它的兼容性问题很快成为了一个不小的挑战。johnsoncodehk,Vue语言工具和Volar.js的主要开发者在这次事件中,他本人也受到不少冲击。
混合模式允许Vue语言服务和TypeScript插件无缝协作,为开发者提供实时的类型检查和智能提示,这本是一个提高开发效率的好想法。但实践中,这一功能在不同环境和版本间的兼容性问题,尤其是与VSCode及其内置Node.js版本的兼容性,以及在不同TypeScript版本下的性能瓶颈,限制了其实用性。
面对这些问题,Vue团队作出了在2.0.7版本中默认关闭混合模式的决策,旨在缓解开发者面临的兼容性问题,确保Vue工具链的稳定性和可靠性,建议尽快升级。
- VSCode <= 1.87捆绑的Node版本在某些环境中会破坏tsserver + @vue/typescript-plugin。
- 即使@vue/typescript-plugin只提供vue虚拟代码并处理映射,它仍然会在某些TS版本中导致tsserver的性能问题。
- 每当任何TS插件在.vue文件中崩溃时,它都会导致@vue/typescript-plugin失效,并使智能提示完全错误。这是TS LS插件架构的容错问题。
这些问题超出了我们的控制范围,因此我们重新引入了v1完整的LSP服务器,并且只在用户明确启用时切换到混合模式。
资金支持对于开源项目的持续发展极为关键。johnsoncodehk提到,虽然Vue语言工具的开发非盈利,但资金压力是项目持续运作的一大挑战。所以两天前团队推出了 "Vue - Official Insiders"计划,以供项目可持续的发展。
开源不易,希望大家能多给开源开发者多一点鼓励和支持~