实验性JavaScript捆绑程序和压缩程序使用Go来提高速度

发布于:2021-01-08 09:50:07

0

92

0

JavaScript Go webpack

JavaScript捆绑可能需要很长时间,但是一定要这样吗?esbuild创建为一个业余项目,表明JS捆绑不必太慢。让我们看一下这个项目,它的基准测试结果如何比较,看看它是如何工作的,以及检查webpack以及期待已久的Webpack 5到来的议程。

JavaScript捆绑涉及分隔文件,以减少加载网页所需的服务器请求的数量和大小。有许多用于JavaScript的构建工具。在webpack,Gulp和宗地之间,生态系统充满了选择。

一个新的JS捆绑程序和压缩程序可作为一个实验性爱好项目使用,但是esbuild有所不同。 在Golang的帮助下,它比其他方法快得多。

让我们快速浏览一下此JS工具,并期盼一下webpack的议程。

快速的表现

根据基准测试,esbuild比其他常用的JavaScript捆绑器(包括webpack,汇总和包裹)快10到100倍,并且输出大小大致相同。(使用来测试基准 make bench-three。)

让数字说明一切:

{xunruicms_img_title}

esbuild速度的关键在于其选择的语言。它是用Go语言编写的。由于Go是一种快速的语言,因此它使捆绑程序可以利用它并避免速度下降。

根据其README,它当前支持:

  • CommonJS模块

  • ES6模块

  • 使用以下方式绑定ES6模块的静态绑定 --bundle

  • 完全缩小 --minify (空格,标识符和修饰符)

  • --sourcemap 启用时全面支持源地图 

  • JSX到JavaScript的.jsx 文件转换 

  • 通过编译时标识符替换 --define

  • 使用中的browser 字段进行 路径替换 package.json

  • 自动检测 baseUrl in tsconfig.json

测试一下

提醒您,此捆扎机不应在生产中使用,也未在生产环境中进行过测试。创作者说这是一个在冬季休假期间创建的爱好项目。因此,它包括潜在的错误以及新代码和实验项目的所有相关风险。

但是,请随意尝试一下,即使只是作为实验来了解JS工具可能有多快。

查看GitHub上的安装指南以及如何使用命令行界面。

展望webpack 5

尽管Webpack性能相对较慢,但它通常是JavaScript应用程序最常用的捆绑器,尤其是在生产中,它是JavaScript 2019开发人员调查中列出的顶级JS工具之一。它是一个模块捆绑器,用于捆绑JavaScript文件以供在浏览器中使用,创建 bundle.js并拥有一个具有大型生态系统的可自定义插件界面。

Webpack 5即将推出,并将包含一些新的实验功能。Sergey Melyukov撰写的文章系列的开始将分解v5中的预期。阅读第一个条目并探索资产模块。

截至目前,尚未确定webpack 5的发布日期,因为它目前处于测试阶段,并且正在收集用户反馈。此版本具有所有主要的更改和功能。因此,现在剩下的就是实现更好的稳定性和进一步的测试。

查看更改日志以获取有关即将推出的新功能的更多信息。