当我们在谈论前端编译的时候,应该了解的知识
软件不过是一串指令,前端软件也不例外。当我们运用现代编译技术例如 webpack 时,我们写的代码,并不是运行在用户浏览器中的代码,而是经过了一系列编译操作,为什么要进行这些编译呢?
我们可以用出版社的角度来解释前端代码编译的过程:
前端代码就像作家写的原始手稿, 而编译则相当于出版社对手稿进行加工和包装的过程。出版社需要对原始手稿进行以下处理, 以确保读者能获得良好的阅读体验:
-
版式设计 (兼容性): 作家的手稿通常是纯文本, 出版社需要将其排版成适合不同阅读 terminal 的格式, 比如纸质书、电子书、有声读物等。这就相当于编译过程中需要将代码转换为不同浏览器可执行的格式。
-
印刷 (性能优化): 出版社会对书籍内容进行压缩和优化, 以减小体积, 提高印刷和运输效率。同样, 编译过程会通过 tree-shaking 等技术删除无用代码, 减小文件体积, 加快加载速度。
-
文体编辑 (现代语言特性): 一些作家可能会尝试使用新的文体手法, 出版社需要对这些新手法进行审核和必要的修改, 以确保读者能够理解。编译器也会将一些超前的 JS 语法特性转译为浏览器可识别的旧语法。
-
分卷出版 (模块化): 对于篇幅过长的作品, 出版社常将其分为多卷出版, 以方便阅读。编译过程同样会将代码拆分为多个模块, 实现按需加载, 提升体验。
-
校对 (错误检查): 出版社会反复校对, 查找并修正手稿中的错误。编译过程中的静态分析也可以检查出代码中潜在的问题, 让开发人员提前修复 bug。
综上所述, 编译前端代码的过程类似于出版社对手稿进行加工包装, 以确保最终产品 (网页) 在各种 terminal (浏览器) 上呈现时, 都能获得良好且一致的体验。出版社和编译器的目标是一致的, 即为读者 (用户) 提供高质量的作品 (软件)。
© Create Nextra App.RSS