我曾经有一段时间没有看 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 也能帮忙您自信地构建大型应用程序。要做很多工作,但这是我的指标,您的慷慨将帮忙我实现目标。
理解社区标准