esbuild 学习笔记
            目录
            
        
        
    为什么 esbuild 相对于别的构建工具打包这么快?
- 基于 Golang 编写,会编译成二进制文件。相对于 JIT 编译器有更高的性能。
 - Golang 语言层面天然支持并行,并且在 esbuild 中被大量使用。JS 只是单线程。
 - ESbuild 中的一切都是从头开始写的,例如 TypeScript compiler,这样可以不受制于第三方库的性能。
 - 内存被高效使用,例如,整个过程中 ESbuild 只使用了三次 JavaScript AST。
 
参考文档:Why is esbuild fast?
第一个例子
打包方式
- 命令行
 - JS 脚本
 - Go 脚本
 
单独引入某个 node 库,不做 bundle 处理
electron 使用 esbuild 打包后启动保错,这时候不对 electron 做 bundle 处理;
 | 
 | 
注意这里的 external 字段。
使用 esbuild 启动服务
开发脚本代码:
 | 
 | 
构建脚本代码:
 | 
 | 
设置 charset 为 utf8
设置 charset: 'utf8', 否则中文打包好会以 ASCII 编码显示
 | 
 | 
功能
- 常量表达式替换全局标识符 -> Define
 - 多文件入口 -> Entry points
 - 单独引入某个 node 库,不做 bundle 处理 -> External
 - 注入别的文件 -> Inject
 - 加载器 -> Loader
 - 压缩 -> minify
 - 动态跟新 -> serve
 - 代码分割 -> splitting (目前还不成熟)
 - 文件监听 -> watch