@kokojs/plugin-esbuild
提供了基于 esbuild 进行压缩的能力。
yarn add @kokojs/plugin-esbuild --dev
安装完成后,在 koko.config.js
中添加如下配置:
module.exports = {
plugins: {
esbuild: {},
},
};
ESBuild 是使用 Go 语言编写的 JavaScript bundler & minifier,它的特点是构建速度极快,相比 Terser 有数十倍的提升。
在大型工程中使用本插件,可以大幅度减少编译所需的时间。
- Type:
Boolean
- Default:
true
是否在 build 时使用 ESBuild 进行代码压缩,开启此选项时,会替换 Webpack 默认的 Terser 压缩。
- 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,
},
},
};
陈嘉涵。