前端构建系统阐述[译]
开发人员编写 JavaScript 代码;浏览器执行 JavaScript 代码。从根本上说,在前端开发中并不需要构建步骤。那么,为什么现代前端开发中会有构建步骤呢?
随着前端代码库的不断增长,以及开发人员工效变得越来越重要,直接将 JavaScript 源代码发送给客户端会导致两个主要问题:
1. 不支持的语言特性: 因为 JavaScript 在浏览器中运行,而且市面上有多种版本的浏览器,你使用的每一种语言特性,都会减少能够执行你的 JavaScript 的客户端数量。此外,像 JSX 这样的语言扩展不是有效的 JavaScript,不能在任何浏览器中运行。
2. 性能问题: 浏览器必须单独请求每个 JavaScript 文件。在大型代码库中,这可能导致需要数千个 HTTP 请求来渲染一个页面。在过去,HTTP/2 出现之前,这还会导致数千次 TLS 握手。
此外,可能还需要几次连续的网络往返才能加载完所有的 JavaScript。例如,如果 index.js
导入了 page.js
,而 page.js
又导入了 button.js
,那么就需要三次连续的网络往返才能完全加载 JavaScript。这被称为瀑布流问题。
源文件也可能因为长变量名和空白缩进字符而变得不必要地大,增加了带宽使用和网络加载时间。
前端构建系统处理源代码,并输出一个或多个为发送到浏览器而优化的 JavaScript 文件。生成的分发版通常对人类来说是难以理解的。