tools.esbuild

  • 类型: Object
  • 默认值: undefined

介绍

esbuild 是一款基于 Golang 开发的前端构建工具,具有打包、编译和压缩 JavaScript 代码的功能,相比传统的打包编译工具,esbuild 在性能上有显著提升。在代码压缩方面,相比 webpack 内置的 terser 压缩器,esbuild 在性能上有数十倍的提升。

Modern.js Builder 提供了 esbuild 插件,让你能使用 esbuild 代替 babel-loader、ts-loader 和 terser 等库进行代码编译和压缩。在大型工程中启用 esbuild 后,可以大幅度减少代码编译和压缩所需的时间,同时有效避免 OOM (heap out of memory) 问题

推荐使用 SWC

相较于 esbuild,我们更推荐使用 SWC 来编译和压缩代码,因为 SWC 支持更多的语法特性、拥有更好的代码压缩率,并且产物具备更好的兼容性。

因此,我们建议你使用 SWC 而不是 esbuild,用法请参考 tools.swc

配置项

你可以通过 tools.esbuild 配置项来设置 esbuild 编译行为。

modern.config.ts
import { defineConfig } from '@modern-js/app-tools';

export default defineConfig({
  tools: {
    esbuild: {
      loader: {
        target: 'chrome61',
      },
      minimize: {
        target: 'chrome61',
      },
    },
  },
});

完整配置项请参考 Modern.js Builder - esbuild 插件配置

ON THIS PAGE