@kokojs/plugin-esbuild

@kokojs/plugin-esbuild 提供了基于 esbuild 进行压缩的能力。

Usage no npm install needed!

<script type="module">
  import kokojsPluginEsbuild from 'https://cdn.skypack.dev/@kokojs/plugin-esbuild';
</script>

README

ESBuild 插件

@kokojs/plugin-esbuild 提供了基于 esbuild 进行压缩的能力。

安装

yarn add @kokojs/plugin-esbuild --dev

安装完成后,在 koko.config.js 中添加如下配置:

module.exports = {
  plugins: {
    esbuild: {},
  },
};

介绍

ESBuild 是使用 Go 语言编写的 JavaScript bundler & minifier,它的特点是构建速度极快,相比 Terser 有数十倍的提升。

在大型工程中使用本插件,可以大幅度减少编译所需的时间。

minify

  • Type: Boolean
  • Default: true

是否在 build 时使用 ESBuild 进行代码压缩,开启此选项时,会替换 Webpack 默认的 Terser 压缩。

scriptTranspile

  • Type: 'dev' | 'build' | 'all' | 'none'
  • Default: 'none'

是否通过 esbuild-loader 来编译 JS/TS 代码。

  • 值为 dev 时,表示仅在 dev 模式下开启(推荐使用)
  • 值为 build 时,表示仅在 build 模式下开启
  • 值为 all 时,会在 dev & build 模式下开启
  • 值为 none 时,表示不开启
// koko.config.js
module.exports = {
  plugins: {
    // 在 dev 时使用 esbuild
    esbuild: {
      scriptTranspile: 'dev',
    },
    // 在 build 时使用 babel
    babel: {
      scriptTranspile: 'build',
    },
  },
};

注意事项

ESBuild 压缩结果中会产生 ES6 语法,比如模板字符串,在使用时请考虑业务对兼容性的要求,不建议在 C 端业务中使用。

另外,在使用 ESBuild 插件时,一般需要关闭 ES Guard 插件。

module.exports = {
  plugins: {
    'es-guard': {
      enable: false,
    },
  },
};

维护者

陈嘉涵。