打造零配置的JS/TS打包工具-启迪思想与实践
2023-12-09 12:38:43
1. 引言:一个零配置JS/TS打包工具的诞生
回顾约18年下旬,一个初衷是为非前端领域开发者,尤其是研究型开发人员打造的打包工具,悄然诞生。彼时,从其他方向开发人员那里听到的最迫切需求,往往关于JS各种语法兼容性、语言特性和模块化的疑惑。JS的学习曲线似乎对于这些人群来说有些吃力,这些疑惑的解决往往耗费不少时间,这成为了他们快速完成开发的主要障碍。
2. 初始探索:从Webpack到Rollup
最开始,我们选择了Webpack作为打包工具。作为JS领域中耳熟能详的工具,Webpack凭借其强大的功能、丰富的插件生态,以及良好的兼容性,成为打包领域的领头羊。然而,对于非前端领域开发者来说,使用Webpack却会带来一些问题。该工具极高的配置灵活性,也让非前端领域开发者望而却步。开发者需要耗费大量时间研究Webpack的各种配置选项,同时还要理解webpack.config.js的书写方式。这样一来,搭建环境的复杂程度以及技术抽象性的上升,对于非前端领域开发者的学习曲线而言,可谓是“加重负担”。
后来,我们发现了一个更适合非前端领域开发者的打包工具——Rollup。Rollup是一个基于ES模块规范的打包工具,与Webpack不同的是,Rollup采用了零配置原则,可以无需任何配置直接使用。这对非前端领域开发者来说是一个福音,毕竟他们最担心的就是复杂的配置。而且,Rollup的打包效率也相当出色,在打包速度上甚至比Webpack还要快。
3. 追求极致:从Rollup到Parcel
然而,Rollup也有一些不足。在使用Rollup进行调试时,开发者需要手动地将代码编译成可以执行的JavaScript代码。对于非前端领域开发者来说,这是一个很大的障碍。为了解决这个问题,我们又将目光投向了Parcel。
Parcel是一个相对较新的打包工具,采用了零配置原则,而且它还提供了实时编译和热更新功能。这意味着非前端领域开发者在使用Parcel时,可以不必手动编译代码,而且还可以实时看到代码的改动。这对提高开发效率来说是一个非常大的帮助。
4. 技术选型:探索EsmBuild和Vite
在不断的探索和对比中,我们又发现了EsmBuild和Vite这两款打包工具。EsmBuild是一个非常快速的构建工具,它可以将JavaScript代码编译成可以执行的JavaScript代码。Vite是一个开箱即用的前端构建工具,它可以快速地构建前端应用程序。
5. 总结:一个零配置JS/TS打包工具的诞生
最后,经过一番技术选型和对比,我们最终决定使用Vite作为我们的打包工具。Vite具有开箱即用、性能出色、配置简单等特点,非常适合非前端领域开发者使用。
通过打造零配置JS/TS打包工具,我们旨在启迪思想和推动实践,为非前端领域开发者提供一个简单易用、功能强大的打包工具,帮助他们快速完成开发工作。