我已经有一段时间没有看Vetur了。问题和公关正在堆积。我刚刚对所有问题进行了分类,但是我希望大约需要两个月的时间来审查所有PR,并修复大多数错误。因此,我决定写这篇文章为您提供一些更新和透明性。
这篇文章分为四个部分:
- 现状:项目进展如何?
- 开发:我计划继续开发Vetur。
- 赞助:我正在开始赞助,以保持我的工作可持续。
- 方向:目前的发展重点是什么
- 最后一点点沉思。
现状
Vetur现在在VS Code Marketplace上有480万次下载。vls,Vue语言服务器,正在Vim / NeoVim,Emacs,Atom,Sublime Text和CodeSandbox中使用。有时我也为Vetur的受欢迎程度感到惊讶。
同时,有大约200个问题和大约40个PR。假设平均每个错误1个小时,则大约需要16周的时间来解决它们。有时@ktsn和@ yoyo930021可以帮助我解决分类问题并发送错误修复程序,但我仍然主要负责进行修复程序和检查PR。
Vetur在三个方面变得相当复杂:
它需要支持.vue文件中允许的所有语言。Vetur现在提供语法高亮和语言特性html/ css/ scss/ less/ stylus/ js/ ts,但只提供语法高亮pug/ haml/ slm/ postcss/ sass/ coffee。人们对pug/ postcss/的语言功能很感兴趣sass,但是我没有时间。 它需要在Language Server Protocol中实现所有语言功能。其中包括自动完成,诊断错误,悬停信息,签名帮助,折叠,跳转到定义,重命名,格式化等等。现在,将其乘以上面的语言数量。 它需要与许多其他库很好地集成。TypeScript是最需要努力的一个,因为有时我需要深入研究其内部以解决语言功能问题或性能问题。其他库,例如emmet,语言服务,格式化程序和linters也需要时间。 尽管我旨在为Vue用户提供快速,流畅的开发体验,但是要管理所有这些方面都很困难。为一种语言开发一种语言服务器已经是一项全职工作。在VS Code中实现TypeScript支持是我过去的全职工作。有时工作会让人感到不知所措。
较大的表面积确实使这项工作充满挑战,但同时也提供了创新的机会。Vue插值语言功能和Vetur终端界面就是其中的一些示例。在对所有这些方面进行监督的过程中,我有很多想法可以突破开发经验的界限。现在我有更多时间,我将开始尝试这些想法。
Vetur现在可以帮助塑造Vue生态系统。Vetur的框架支持现在可与9个流行的Vue库一起使用。例如,当您安装Nuxt或时Quasar,这些框架会在其NPM软件包中包含自动生成的JSON元数据文件。Vetur然后选择它们,并在编辑器中为您提供自动完成和悬停信息。我希望对该格式进行标准化并推动其采用,以便将来人们可以轻松学习和使用基于Vue的新库,就像今天通过安装@types软件包轻松地学习和使用JS库一样。
支持Vue一直是Vetur的重点,但是我很高兴看到Vetur在更广泛的Web社区中使用,无论是用于Vue相关的开发还是无关的项目。例如,vscode-weex用途Vetur支持weex和sveltejs /语言工具建立在Vetur以支持苗条。
总的来说,我认为通过一些错误修复和PR,Vetur将会再次处于良好状态,并为Web开发体验的创新提供了成熟的基础。我会说说我打算如何继续发展。
发展历程
我辞掉了在微软的工作,现在在上海进行独立学习/研究。我一直在忙于过渡,但现在我已经安定下来,准备再次接受开发。鉴于我的其他承诺,我每周大约有15小时的时间为开源做贡献。我计划将大部分资金花在Vetur上。
有这么多功能,我想我自己一个人解决所有问题不再可行。许多其他人想提供帮助,但是我并没有使Vetur容易做出贡献。这是我的计划,可以使贡献更顺畅:
有明确的问题模板和标准。严格关闭所有不遵守的问题。 隔离可以独立开发的特征区域。在Vetur和这些独立区域之间建立清晰的接口。 及时检查公关(我没有这样做)。 编写更多文档来为每个领域做出贡献。例如,如何添加新的框架支持?如何调试和修复TextMate语法问题?如何追踪性能问题? 这是我的一些个人计划:
使用Vue + TypeScript构建我的个人项目。写下一切。一方面,我可以狗粮Vetur,在遇到问题时进行改进。另一方面,我还没有看到有关使用Vue + TS的详尽指南,所以我想我会写一个。 每周花一些时间在Vetur基金会的基础上进行研究和实验,以改善Vue / Web开发体验。写下我的发现。不用担心完美和生产质量。玩得开心 老实说,维护一个开源项目并不有趣。有时我不想查看所有通知。但是现在我意识到我应该采取更坚定的立场。我不会让金钱或问题的紧迫性使这个项目失去乐趣。我不会每周花40个小时来修复神秘错误。找点乐子不是可有可无的,而是必不可少的:
我认为在计算机科学界保持计算乐趣非常重要。当它开始的时候,那真是太有趣了。当然,付费客户会时不时地陷入困境,过了一会儿,我们开始认真对待他们的投诉。我们开始觉得我们确实为成功使用这些机器,无错误地使用这些机器负责。我不认为我们是。我认为我们有责任拉伸它们,使它们朝着新的方向发展,并在室内保持乐趣。我希望计算机科学领域永远不会失去它的乐趣感。最重要的是,我希望我们不要成为传教士。不要觉得自己是圣经推销员。世界上已经有太多了。您将了解其他人对计算的了解。不要觉得成功计算的关键就在您手中。你手里有什么
—艾伦·J·佩利斯
赞助商
我正在发起GitHub赞助活动,以保持工作的可持续性。如果Vetur帮助了您,请考虑赞助我。
在Vetur的四年发展中,钱不是我的目的或关注点。我出于关心,好奇和爱的目的而在研究Vetur。在奖励方面,我偶尔会收到陌生人的感谢邮件。他们温暖了我的心。
但是,辞职后,我再也无法忽略金钱问题了。一方面,我的储蓄将在一天之内用完,我需要为此计划。另一方面,维持Vetur花费了我大量的时间进行个人研究/学习,而我辞去了高薪工作。
即使现在钱对我来说是一件不可忽视的事情,但我不会寻求某些选择。一些语言扩展会收取高级功能的费用。我绝不会更改OSS许可或向您收取任何使用Vetur的费用。
如果Vetur为您简化了使用Vue的过程,请考虑提供小额赞助,例如每月一杯拿铁。
如果您使用Vetur开发商业产品,或者将Vetur嵌入商业在线IDE中,请考虑扩大赞助范围。
感谢您将钱从我的关注清单中删除,因此我可以专注于使Vetur变得更好并为Vue生态系统做出贡献。
方向
以下是我近期将重点关注的事项:
确保同时支持Vue 3和Vue 2。 改善TypeScript集成以 将TypeScript功能带到Vue文件中(自动导入,重构,组织导入等)。 适应更复杂的项目设置。 最终确定描述Vue组件形状的交换格式。框架应生成这种格式的数据并将其提供给Vetur。vls应该为用户组件即时生成这种格式的数据。然后,此数据将用于语言功能,例如自动完成和错误检查。 改善VTI。 提高性能。创建性能测试套件并调查性能问题。 将Windows支持与macOS / Linux支持相提并论。 改善对漂亮/漂亮的支持。 此列表至少需要2个月的时间。我将随时更新路线图。
沉思
过去,学习Vue或任何框架往往是一个分散的过程。您阅读了API。复制并改编。编写一些代码。查找错误。返回阅读API。解决错误。来回很多。Vetur模糊了流程之间的界线。您可以在一个循环中学习和编写Vue。Vetur可以加快您的速度并给您信心。
有时候,我觉得学习Vue的过程与旅行到某个地方并没有太大不同,因为您不了解一种语言和一种文化。不确定感相似。您担心使用错误的短语。您急切地想找一家好餐厅的Google。我对Vetur的希望是,作为一个导游,他会一直陪着您,教您the语,带您去当地的餐馆,然后逐渐消失在后台,给您带来探索的乐趣。我希望Vetur可以帮助您玩Vue并玩得开心。我希望Vetur也能帮助您自信地构建大型应用程序。要做很多工作,但这是我的目标,您的慷慨将帮助我实现目标。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。