esbuild - 下一代 JavaScript bundler
2022/11/5 23:23:54
本文主要是介绍esbuild - 下一代 JavaScript bundler,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
为什么是另一个JS捆绑器
技术进步非常快。每天,您都会看到新的框架、构建工具和库来加速和改进您的软件应用程序。ESBuideal是不断创新和改进的另一个例子。它是一个开源的下一代JavaScript捆绑器,比业内其他捆绑器非常快速,更高效。它是用 Go 语言编写的,考虑到速度;它由并行解析、打印和源映射生成提供支持。它打包并捆绑JS代码以在Web上分发。它的一些功能包括:
- 它非常快,即使没有任何缓存。它比其他捆绑器快得多。
- 适用于 JavaScript 和 Go 的强大 API
- ES6 和常用 JS 模块
- 支持 TypeScript 和 JSX 语法
- 源映射
- 缩小
esbuild的特点
让我们详细介绍一下它的一些功能。
捆绑和支持的内容类型
esbuild支持捆绑和代码拆分。捆绑是指要部署单个目标。代码拆分是指您想要拆分为许多目标,例如等。
esbuild使用其称为“加载器”的组件对各种内容类型的内置支持。加载程序告诉 esbuild 如何解析特定的内容类型。默认情况下启用的三个常见加载程序是:app.js
app.js
header.js
sidebar.js
- 打字稿加载器
- JavaScript loader
- CSS 加载器
如果我们看一下esbuild支持的内容类型,那么这些内容类型如下:
- JavaScript Loader:如上所述,JavaScript 加载器默认处于启用状态,它支持 andfiles。
.js
.cjs
.mjs
- 打字稿加载器:默认启用..和文件。但是,它不支持类型检查。
.ts
.tsx
mts
.cts
- JSX 加载器:默认情况下启用 forandfiles。请注意,默认情况下不会在文件中启用语法。但是,您可以通过更新配置来启用此功能。
.jsx
.tsx
JSX
.js
- JSON 加载器:默认情况下为文件启用。它将 JSON 文件解析为 JavaScript 对象并导出这些对象。
.json
- CSS Loader:它可以直接捆绑CSS文件,而无需从JavaScript代码导入CSS。默认情况下,此加载程序也处于启用状态。
- 文本加载器:默认情况下也为文件启用它。它在构建时将文件作为字符串加载,并导出字符串默认导出。
.txt
- 二进制加载器:它在构建时以二进制缓冲区的形式加载文件,并将其作为 Base64 编码包含在捆绑包中。默认情况下不启用它。
- 数据 URL:它在构建时将文件作为二进制缓冲区加载,并将其作为 Base64 编码的数据 URL 嵌入到捆绑包中。此加载器可用于将图像与 CSS 加载器捆绑在一起,以使用该方法加载图像。默认情况下不启用它。
url()
构建接口
esbuild 有一个强大的 JavaScript build API,通过它可以自定义 esbuild 的行为。它类似于 Webpack 中的文件。
如果您查看下面的代码示例,您可以看到构建函数在子进程中执行 esbuild,并返回一个在构建完成时解析的承诺。
请注意,esbuild 还提供了同步运行的同步构建 API。您将需要使用异步构建 API,因为 esbuild 插件仅与异步 API 兼容。webpack.config.js
buildSync
require('esbuild').build({ entryPoints: ['app.jsx'], bundle: true, outfile: `bundle.js', }).catch(() => process.exit(1))
增量编译
ESBuidel支持增量编译。如果您一次又一次地从不同的源编译同一个文件,esbuild 将只处理更改的源,而不是每次都从头开始拆分或捆绑代码。
插件
插件 API 是esbuild 的一个非常有用的功能。它允许您在链接文件时对其进行预处理。如果您要将 Sass 转换为 CSS 或将降价转换为 JSX 等,这将非常有益。您仍可以通过插件 API 配置实现详细信息。
服务器模式
服务器模式使您能够将esbuild用作 Web 服务器,并且您可以为传入请求实现自己的服务器处理程序。此功能非常强大,因为您可以使用服务器处理程序对传入的请求执行不同的功能,例如观察事件并记录它们。esbuild利用内存而不是磁盘中的代码拆分目标来提供捆绑的代码,使其成为高性能的 Web 服务器,因为它减少了每个请求所花费的总工作量。
观看模式
监视模式意味着esbuild可以在源代码发生更改时检测到它们。不用担心文件观察者或使用像 Nodemon、chokidar 等库,你可以把这个责任转移到 esbuild。实际上,您还可以实现自己的监视处理程序,以便记录事件,观察事件并推送服务器发送的事件。
与其他捆绑器的比较
如果您查看以下不同捆绑器之间的比较,您会发现esbuild与其竞争对手相比具有显着的性能优势。想象一个拥有许多项目和依赖项的大型团队,其中减少构建时间对于产品开发至关重要。神奇之处在于 esbuild 能够并行打印、解析和源映射生成。
后端开发人员喜欢这个 React 框架!
了解基于 React 的无头解决方案,以构建时尚的CRUD应用程序。通过优化,您可以确信您的代码库将始终保持干净且无样板。
这篇关于esbuild - 下一代 JavaScript bundler的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?