工具链作为代码

2020-12-22 05:08:46

当Volta推出其1.0版本时,我一直在思考使它不仅仅是一个Node版本管理器的原因。我认为让Volta如此解放的是我一直称之为工具链的代码(TaC):

用于项目的确切命令行工具集应该在git中,并且对于为项目做出贡献的每个人都应该工作。

将工具链指定为代码,而不是手动安装和升级,从而使开发人员摆脱了像开发计算机的系统管理员那样的行为,并使他们将宝贵的认知资源集中在真正重要的方面:构建软件!

沃尔塔的首席维护者查克·皮尔斯(Chuck Pierce)喜欢说,他最喜欢的称赞是当沃尔塔用户告诉他他们倾向于忘记它的存在时。

就像“基础结构即代码”使团队免于手动管理其服务器基础结构一样,Volta允许团队在其git repo中集体维护对其项目所需工具的描述。在日常工作中,开发人员只需使用他们熟悉的工具即可直接从命令行或脚本调用Node,npm,Yarn和其他CLI工具,甚至无需考虑安装或升级。

我并不是说Volta是第一个或唯一的TaC解决方案。实际上,它受到rustup和rbenv等其他系统的启发。但是有时人们会问为什么当您只使用容器或冷却像Codespaces这样的基于云的新开发环境时,为什么我们甚至需要工具链管理器。

云开发环境是未来,但我认为他们最终仍需要TaC解决方案。例如,在monorepo环境中,仅安装一个版本的Node或其他工具并不总是足够的。从子项目到子项目的移动应该很容易,而不必经常安装或修改系统工具。

就像Go设置了语言应该带有自己的自动格式化程序的新标准一样,我认为rustup播下了种子,即编程平台也应该带有自己的工具管理器。 我对JavaScript的希望是,最终Node将附带与Volta相似甚至基于Volta的工具管理器。 更好吗? 也许有一天,所有主要的编程平台都将TaC视为表风险功能,就像代码格式和包管理一样。 如果您以前从未尝试过使用工具管理器,那么Volta 1.0现已发布,现在是您亲自尝试的绝佳时机!