esbuild 极速的JavaScript构建打包工具

这篇具有很好参考价值的文章主要介绍了esbuild 极速的JavaScript构建打包工具。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、esbuild 是使用go语言编写的一个前端构建工具

相对于nodeJs的构建工具如webpack。go语言是纯机器码,没有js的解释过程;go新开了一个进程多线程并行,而js是单线程串行化的,所以从开发语言层面来说就更快。当nodejs还在解析打包程序的js的时候,go已经在解析要构建的js了。

2、esbuild内置了部分的loader直接使用go语言编写,可以直接使用

相对于nodeJs的构建工具中相同功能的loader相比也更快。不同于webpack中loader都要配置添加。比如内置了对.js、.jsx、.ts、.tsx 、.css、.module.css 等的支持,其他文件类型则需要添加社区的loader或者手写插件进行处理,比如:less、sass、img、字体图标库等。
esbuild的生态还不完善,很多插件其实只是包装了开源的loader框架,本质上还是用的js实现的,而且很多社区提供的插件都存在各种问题,需要自己实现插件,比如对css进行浏览器兼容添加浏览器前缀等问题

3、esbuild的代码分割很鸡肋

代码分割可以减小了初始加载时的文件体积,加速页面加载时间;也能提高缓存利用率,节省带宽成本;多个小块的代码可以并行下载,提高整体加载效率。而esbuild的代码分割,只支持esm 格式,对浏览器版本有限制;能对动态 import 的内容或多入口同时用到的代码进行分割。无法做到像webpack一样将使用到的某个库单独打包出去。

4、esbuild不支持HMR,需要借助插件实现。

5、esbuild目前的应用

主要因为esbuild在代码分割、css处理、不支持HMR、没有提供AST能力(不能转换成兼容低版本浏览器代码)等问题,虽然它很快,但它不适合直接用于生产环境,而更适合作为一种偏底层的模块打包工具,需要在它的基础上二次封装。在其他的构建工具中,只是将esbuild应用于开发环境,从而有更快的开发体验,比如在vite中 ,开发环境下使用esbuild快速构建,而构建部署版本时则使用的是rollup;在umi/mfsu中,开发环境下使用esbuild-loader替代label,而构建部署版本时则还是使用的babel。

总的来说,esbuild具有极快的构建速度、可扩展性、支持多种格式、不需要设置各种 loader,配置简单等。但还有很多不足:

  • 社区生态很弱,跟 Webpack 和 Vite 完全不在一个量级
  • 插件之间兼容性问题很严重
  • 代码分割能力太弱,只能基于入口进行分割
  • 对目标浏览器版本有一定要求
  • 不支持 HMR
  • 为了保持结构的一致性,没有提供转化的 AST 的 API
  • 由于工具和插件还是采用 JavaScript 编写,存在解析速度相对较慢的可能性
  • 对于复杂场景,配置还是像 Webpack 一样复杂
  • 可以在简单项目或类库开发中使用
    总之,esbuild 不是像 Webpack 是一个大一统项目,提供完善的插件机制,而是在极度精简之后的打包工具,快才是它的追求目标。

文章内容只做学习记录,内容转自别的大佬博客,主要参考:

Esbuild深度调研:吹了三年,能上生产了吗?文章来源地址https://www.toymoban.com/news/detail-857525.html

到了这里,关于esbuild 极速的JavaScript构建打包工具的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue中webpack配置compression-webpack-plugin打包压缩和优化,terser-webpack-plugin在构建过程中对 JavaScript 代码进行压缩和优化

    参考地址:https://v4.webpack.js.org/plugins/compression-webpack-plugin/ 一、compression-webpack-plugin的使用,安装插件 二、在 webpack 配置中,require 或 import 引入 三、配置 参考地址:https://v4.webpack.js.org/plugins/terser-webpack-plugin/ 一、安装terser-webpack-plugin 二、在 Webpack 配置中引入 三、配置

    2024年04月14日
    浏览(52)
  • HTML+JavaScript构建一个将C/C++定义的ANSI字符串转换为MASM32定义的DWUniCode字符串的工具

    公文一键排版系统基本完成,准备继续完善SysInfo,增加用户帐户信息,其中涉及到Win32_Account结构,其C++定义如下:  由于WMI使用的是UniCode(WCHAR),所以我们在MASM32中要将以上成员属性AccountType、Caption……按DW UniCode(WCHAR)来定义,如下: 虽然MASM32 在QEDITOR 的 Conversions里提

    2024年02月13日
    浏览(40)
  • 构建前端之光:JavaScript插件的研发艺术

    在前端开发的宇宙中,星星是网页,而照亮这个宇宙的,是我们前端开发者手中的JavaScript插件。插件就像乐高积木,可以将我们的代码块组装成复杂而精美的页面。本文将引导你走进JavaScript插件的世界,探讨如何开发、测试和发布你的插件。 让我们从一个简单的例子开始。

    2024年02月10日
    浏览(40)
  • 【JavaScript】3.3 JavaScript工具和库

    在你的 JavaScript 开发之旅中,会遇到许多工具和库。这些工具和库可以帮助你更有效地编写和管理代码,提高工作效率。在本章节中,我们将探讨一些常见的 JavaScript 工具和库,包括包管理器、构建工具、测试框架和一些流行的库。 包管理器用于管理项目的依赖。它可以帮助

    2024年02月05日
    浏览(37)
  • EZUIKit-JavaScript:构建高效UI的利器

    项目地址:https://gitcode.com/Ezviz-OpenBiz/EZUIKit-JavaScript EZUIKit-JavaScript 是 Ezviz(海康威视旗下智能物联网品牌)推出的一个轻量级、高性能的前端组件库,旨在帮助开发者快速构建现代化的企业级Web应用界面。它基于React框架设计,提供了一套完整且易于定制的UI解决方案,让开发

    2024年04月14日
    浏览(32)
  • uniapp打包H5出现Please enable JavaScript to continue

    这个问题困扰了我2天的时间。几乎看完了所有的文档。网上各种配置,各种说法,这里做一个统一的归纳汇总。 这里说明一下,调试是调试,打包是打包,谁的问题,就看谁。 调试的问题请看 uniapp跨域的问题 的文章,在我的列表里面找。 下面说,当界面出现这个原因的解

    2024年02月09日
    浏览(39)
  • 初识esbuild、构建vue3脚手架

    esbuild 非常快速的 web 打包器,使用 go 语言编写。 📦 特点: 无需缓存也能很快速的编译打包。 内置 js、css、ts、jsx 类型文件编译。 支持 es6 和 commonjs 模块。 可以编译打包成 esm 模块和 common JS 模块 tree shaking 摇树优化、优化资源大小、source-map 代码映射 启动本地服务,在监听

    2024年02月01日
    浏览(41)
  • 使用JavaScript实现复杂功能:动态数据可视化的构建

    在前端开发中,JavaScript无疑是最核心的技术之一。它能够处理各种交互逻辑,实现复杂的功能。本文将通过一个动态数据可视化的案例,展示如何使用JavaScript实现复杂功能。动态数据可视化能够将大量数据以直观、生动的方式呈现,帮助用户更好地理解和分析数据。 准备工

    2024年02月20日
    浏览(49)
  • 编程界的圣经:从Scheme到JavaScript构建你的计算思维

    《计算机程序的构造和解释》(Structure and Interpretation of Computer Programs,简记为SICP)是MIT的基础课教材,出版后引起计算机教育界的广泛关注,对推动全世界大学计算机科学技术教育的发展和成熟产生了很大影响。这本书的第1版于1984年出版,第2版于1996年出版,至今已被全世

    2024年03月12日
    浏览(40)
  • 前端构建(打包)工具发展史

    大多同学的前端学习路线:三件套+框架+慢慢延伸到其他,在这个过程中,有一个词出现的频率很高:webpack 。 作为一个很出名的前端构建工具我们在网上随便一搜,就会有各种教程:loader plugin entry吧啦吧啦。 但是为什么会有它,为什么我们离不开它呢? 如何理解“构建工

    2024年02月14日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包