Java教程

esbuild - 下一代 JavaScript bundler

本文主要是介绍esbuild - 下一代 JavaScript bundler,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

为什么是另一个JS捆绑器

技术进步非常快。每天,您都会看到新的框架、构建工具和库来加速和改进您的软件应用程序。ESBuideal是不断创新和改进的另一个例子。它是一个开源的下一代JavaScript捆绑器,比业内其他捆绑器非常快速,更高效。它是用 Go 语言编写的,考虑到速度;它由并行解析、打印和源映射生成提供支持。它打包并捆绑JS代码以在Web上分发。它的一些功能包括:

  • 它非常快,即使没有任何缓存。它比其他捆绑器快得多。
  • 适用于 JavaScript 和 Go 的强大 API
  • ES6 和常用 JS 模块
  • 支持 TypeScript 和 JSX 语法
  • 源映射
  • 缩小

esbuild的特点

让我们详细介绍一下它的一些功能。

捆绑和支持的内容类型

esbuild支持捆绑和代码拆分。捆绑是指要部署单个目标。代码拆分是指您想要拆分为许多目标,例如等。
esbuild使用其称为“加载器”的组件对各种内容类型的内置支持。加载程序告诉 esbuild 如何解析特定的内容类型。默认情况下启用的三个常见加载程序是:
app.jsapp.jsheader.jssidebar.js

  • 打字稿加载器
  • JavaScript loader
  • CSS 加载器

如果我们看一下esbuild支持的内容类型,那么这些内容类型如下:

  • JavaScript Loader:如上所述,JavaScript 加载器默认处于启用状态,它支持 andfiles。.js.cjs.mjs
  • 打字稿加载器:默认启用..和文件。但是,它不支持类型检查。.ts.tsxmts.cts
  • JSX 加载器:默认情况下启用 forandfiles。请注意,默认情况下不会在文件中启用语法。但是,您可以通过更新配置来启用此功能。.jsx.tsxJSX.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.jsbuildSync

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的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!