esbuild中文文档-基础配置项(General options - Rebuild)

news/2024/7/19 9:44:41 标签: 软件构建, javascript, go, transformer

文章目录

  • 重建(Rebuild)
  • 结语

哈喽,大家好!我是「励志前端小黑哥」,我带着最新发布的文章又来了!

老规矩,小手动起来~点赞关注不迷路!

esbuild简单介绍

esbuild为了突破了JavaScript语言的瓶颈,采用了Go语言编写,构建速度与同代码量下的webpack对比提升在10倍以上,开创了构建工具性能的新时代。

它的中文文档,本人正在不断的更新完善中,欢迎大家关注阅读!

重建(Rebuild)

Supported by: Build

如果您的使用场景涉及到相同的配置项,重复使用esbuildbuild API,您可能需要使用此API。比如,如果您正在实现自己的文件监听服务,这个配置项将非常有用。重建比再次构建会更高效,因为上一次生成中的一些数据是缓存的,如果原始文件自上一次构建以来没有更改,则可以重用。Rebuild API目前使用两种形式的缓存:

  • 存储文件在内存中,如果文件元数据自上次生成以来没有更改,则不会从文件系统中重新读取。此优化仅适用于文件系统路径。它不适用于插件创建的虚拟模块。

  • 存储解析后的AST在内存中,如果文件内容自上次构建以来没有更改,则可以避免重新解析AST。只要虚拟模块路径保持不变,这种优化不仅适用于文件系统模块,还适用于插件创建的虚拟模块。

以下是如何进行重建:

import * as esbuild from 'esbuild'

let ctx = await esbuild.context({
  entryPoints: ['app.js'],
  bundle: true,
  outfile: 'out.js',
})

// Call "rebuild" as many times as you want
for (let i = 0; i < 5; i++) {
  let result = await ctx.rebuild()
}

// Call "dispose" when you're done to free up resources
ctx.dispose()

结语

笔者根据esbuild文档搭建了一套简洁的ts开发脚手架工程,编译速度非常快!脚手架还整合了eslint,另一篇文章还附带了调试教程,需要的朋友看这里:esbuild配合vscode搭建的ts开发环境,这编译速度,真香

另外,esbuild中文文档专栏,本人目前正在翻译整理,关注我,有最新的翻译文档会第一时间通知你!

(本文完)

励志前端小黑哥,全网唯一账号!
关注我,带你了解更多前端知识!


http://www.niftyadmin.cn/n/5024779.html

相关文章

Python数据分析 — 数据分析概念、重要性、流程和常用工具

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。Python数据分析是利用Python编程语言进行数据处理、转换、清洗、可视化和建模的过程。Python在数据科学领域非常流行&#xff0c;有许多强大的库和工具可供使用&#xff0c;例如NumPy、Pandas、Matplotlib和Scikit-learn等…

Kotlin Files Paths write ByteArray writeString写多行BufferedWriter

Kotlin Files Paths write ByteArray writeString写多行BufferedWriter import java.nio.file.Files import java.nio.file.Paths import java.nio.file.StandardOpenOptionfun main(args: Array<String>) {val filePath "./myfile.txt"val path Paths.get(…

人脸识别数据库,RGB和IR都有

人脸识别数据库 - 人脸识别 - Hello Mat - Powered by Discuz! 参考: ​​​​​​人脸识别数据库 - 人脸识别 - Hello Mat - Powered by Discuz! https://github.com/ZhaoJ9014/face.evoLVe.PyTorch

WIinform 跨线程修改

/// <summary> /// 实例化委托&#xff0c;向Label控件赋值 /// </summary> /// <param name"label"></param> /// <param name"tip"></param> public void SetLabelTipFunc…

SpringMVC的拦截器和JSR303的使用

目录 一、JSR303 二、拦截器&#xff08;interceptor&#xff09; 一、JSR303 1.1.什么是JSR303 JSR 303&#xff0c;它是Java EE&#xff08;现在称为Jakarta EE&#xff09;规范中的一部分。JSR 303定义了一种用于验证Java对象的标准规范&#xff0c;也称为Bean验证。 Bean验…

跨进程通讯之Unix Socket通讯

1、unix_client.c代码 #include <stdlib.h> #include <stdio.h> #include <stddef.h> #include <sys/socket.h> #include <sys/un.h> #include <errno.h> #include <string.h> #include <unistd.h> #define MAXLINE 80 char…

信息化发展41

分析阶段 分析阶段的三个目标包括价值流分析、信息系统异常的源头分析和确定优化改进的驱动因素。 1 &#xff09;价值流分析。价值流分析首先定义信息系统使用者眼中相关产品或服务的价值。 2 &#xff09; 信息系统异常的源头分析。度量阶段的信息系统异常的来源&#xff0c…

oracle提高执行更新或新增的SQL效率

在使用oracle数据库的过程中&#xff0c;有时候会需要批量更新或者新增数万条数据。如果本身表中的数据就很大&#xff0c;这时候执行SQL速度会很慢。为了提高执行效率&#xff0c;可以使用并发。如下&#xff1a; 更新&#xff1a; update /*parallel(4)*/ a set typea; 新…