diff --git a/packages/core/src/config.ts b/packages/core/src/config.ts index fdd832814..41994a87f 100644 --- a/packages/core/src/config.ts +++ b/packages/core/src/config.ts @@ -502,6 +502,8 @@ export function composeDecoratorsConfig( } export async function createConstantRsbuildConfig(): Promise { + // When the default configuration is inconsistent with rsbuild, remember to modify the type hints + // see https://github.com/web-infra-dev/rslib/discussions/856 return defineRsbuildConfig({ dev: { progressBar: false, diff --git a/packages/core/src/types/config.ts b/packages/core/src/types/config.ts index bbb9f8326..2551e112e 100644 --- a/packages/core/src/types/config.ts +++ b/packages/core/src/types/config.ts @@ -1,4 +1,9 @@ -import type { EnvironmentConfig, RsbuildConfig, Rspack } from '@rsbuild/core'; +import type { + EnvironmentConfig, + OutputConfig, + RsbuildConfig, + Rspack, +} from '@rsbuild/core'; import type { GetAsyncFunctionFromUnion } from './utils'; export type Format = 'esm' | 'cjs' | 'umd' | 'mf'; @@ -299,12 +304,41 @@ export interface LibConfig extends EnvironmentConfig { * @see {@link https://lib.rsbuild.dev/config/lib/out-base} */ outBase?: string; + /** + * @inheritdoc + */ + output?: RslibOutputConfig; } export type LibOnlyConfig = Omit; +interface RslibOutputConfig extends OutputConfig { + /** + * @override + * @default 'node' + */ + target?: OutputConfig['target']; + /** + * @override + * @default false + */ + filenameHash?: OutputConfig['filenameHash']; + /** + * @override + * When minify is not specified, Rslib will use a sane default for minify options. + * The default options will only perform dead code elimination and unused code elimination. + * + * @see {@link https://lib.rsbuild.dev/config/rsbuild/output#outputminify} + */ + minify?: OutputConfig['minify']; +} + export interface RslibConfig extends RsbuildConfig { lib: LibConfig[]; + /** + * @inheritdoc + */ + output?: RslibOutputConfig; } export type ConfigParams = {