前端构建工具对于现代前端开发人员的工作流程至关重要,原因有很多,归类为改进的开发人员和用户体验。从开发人员的角度来看,前端工具为我们提供了:编写模块的能力、用于本地开发的开发服务器、用于在开发模式下缩短反馈循环的热模块替换 (HMR)、使用 polyfill 定位旧版浏览器的能力、处理主机的能力除了 JavaScript 之外的文件类型,这个列表还在继续。
因此,用户可以享受功能更强大、功能更丰富的应用程序,这些应用程序通过代码拆分、缓存、预取和其他资源优化技术等技术保持高性能——有些应用程序甚至可以离线工作。
能够使用 IIFE 将我们的 JavaScript 拆分为不同的文件,似乎我们所需要的只是一种连接这些文件并将单个文件发送到浏览器的方法。这种需求见证了 Gulp、Grunt、Brocolli 等工具的兴起。然而,我们很快意识到我们的想法可能有点过于简单化了。
随着我们的应用程序变得更加复杂,诸如缺少死代码消除、针对小更改进行完全重建以及其他性能问题等问题使我们意识到我们需要的不仅仅是串联。这催生了更现代的打包工具,如 Webpack、Parcel 等。
随着前端空间的发展步伐没有放缓,我们已经开始观察现代构建工具的差距和问题。
一些主要限制包括:
- 一些现有捆绑器的复杂设置和配置;
- 随着应用程序变大,构建时间增加;
- 开发模式下的次优性能。
JavaScript 生态系统中事物变化的速度通常令人疲倦,但好处是社区可以快速发现问题并着手寻找潜在的解决方案。随着我们着眼于提高前端工具的性能,正在开发新一代的构建工具。