这个功能解决了什么问题?
多构建产物时的配置
目前当需要配置多个构建产物时是这样的:
export default defineConfig({
plugins: [moduleTools(), ModulePlugin()],
buildConfig: [
{
input: ['src'],
format: 'esm',
splitting: true,
sourceMap: false,
minify: 'esbuild',
dts: false,
target: 'es2021',
},
{
input: ['src'],
format: 'cjs',
splitting: true,
sourceMap: false,
minify: 'esbuild',
dts: false,
target: 'es2021',
},
]
})
显然,配置的冗余比较多。而当我们在构建时多个构建产物是基本需求。
预设配置定制
目前预设配置定制采用buildPreset和buildConfig两个配置项,然后两者在冲突时进行警告提供的方式不够优雅
完全可以将两个配置合为一个
你期望的 API 是什么样子的?
期望: 多构建产物时的配置
export default defineConfig({
plugins: [moduleTools(), ModulePlugin()],
buildConfig: [
{
input: ['src'],
format: ['esm','cjs','umd','iife'],
splitting: true,
sourceMap: false,
minify: 'esbuild',
dts: false,
target: 'es2021',
}
]
})
只需要指定一个format参数即可。
期望:预设配置定制
可以将buildPreset和buildConfig两个配置项合为一个
export default defineConfig({
plugins: [moduleTools(), ModulePlugin()],
buildConfig: [
{
preset:""npm-library" //可选配置
// 以下所有配置均可以覆盖预设配置
input: ['src'],
format: ['esm','cjs','umd','iife'],
splitting: true,
sourceMap: false,
minify:true, // =true时采用默认压缩方式,如esbuild
dts: false,
target: 'es2021',
},
{
preset:""npm-library" //可选配置
input: ['lib'],
}
]
})
这种方法比起原来的方式更加简单优雅
像sourceMap和minify这种配置均应该支持=true的配置,采用推荐的最佳配置
比如minify=true时就默认采用esbuild,而不是一定要配一个esbuild或tersert,说实话,大部份情况下使用esbuild或tersert根本不重要,很多人甚至没听过tersert,只需要简单地配置minify=true就很香了
这个功能解决了什么问题?
多构建产物时的配置
目前当需要配置多个构建产物时是这样的:
显然,配置的冗余比较多。而当我们在构建时多个构建产物是基本需求。
预设配置定制
目前预设配置定制采用
buildPreset和buildConfig两个配置项,然后两者在冲突时进行警告提供的方式不够优雅完全可以将两个配置合为一个
你期望的 API 是什么样子的?
期望: 多构建产物时的配置
只需要指定一个
format参数即可。期望:预设配置定制
可以将
buildPreset和buildConfig两个配置项合为一个这种方法比起原来的方式更加简单优雅
像
sourceMap和minify这种配置均应该支持=true的配置,采用推荐的最佳配置比如
minify=true时就默认采用esbuild,而不是一定要配一个esbuild或tersert,说实话,大部份情况下使用esbuild或tersert根本不重要,很多人甚至没听过tersert,只需要简单地配置minify=true就很香了