diff --git a/packages/core/src/config.ts b/packages/core/src/config.ts index b735b5aec..cd9350a72 100644 --- a/packages/core/src/config.ts +++ b/packages/core/src/config.ts @@ -746,7 +746,7 @@ const composeDtsConfig = async ( bundle: dts?.bundle ?? bundle, distPath: dts?.distPath ?? output?.distPath?.root ?? './dist', abortOnError: dts?.abortOnError ?? true, - dtsExtension, + dtsExtension: dts?.autoExtension ? dtsExtension : '.d.ts', autoExternal, banner: banner?.dts, footer: footer?.dts, diff --git a/packages/core/src/types/config/index.ts b/packages/core/src/types/config/index.ts index 6c93a6fc2..24c452e8e 100644 --- a/packages/core/src/types/config/index.ts +++ b/packages/core/src/types/config/index.ts @@ -1,4 +1,5 @@ import type { RsbuildConfig } from '@rsbuild/core'; +import type { PluginDtsOptions } from 'rsbuild-plugin-dts'; export type Format = 'esm' | 'cjs' | 'umd'; @@ -28,11 +29,9 @@ export type Syntax = | string[]; export type Dts = - | { - bundle: boolean; - distPath?: string; - abortOnError?: boolean; - } + | (Pick & { + autoExtension?: boolean; + }) | false; export type AutoExternal = diff --git a/tests/integration/dts/__snapshots__/index.test.ts.snap b/tests/integration/dts/__snapshots__/index.test.ts.snap index b84143ea7..a8f914170 100644 --- a/tests/integration/dts/__snapshots__/index.test.ts.snap +++ b/tests/integration/dts/__snapshots__/index.test.ts.snap @@ -1,6 +1,6 @@ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html -exports[`dts when bundle: false > basic 2`] = ` +exports[`dts when bundle: false > basic 3`] = ` { "/tests/integration/dts/bundle-false/basic/dist/esm/index.d.ts": "export * from './utils/numbers'; export * from './utils/strings'; @@ -20,8 +20,26 @@ export declare const str3 = "str3"; } `; -exports[`dts when bundle: true > basic 2`] = ` +exports[`dts when bundle: true > basic 3`] = ` { + "cjs": "export declare const num1 = 1; + +export declare const num2 = 2; + +export declare const num3 = 3; + +export declare const numSum: number; + +export declare const str1 = "str1"; + +export declare const str2 = "str2"; + +export declare const str3 = "str3"; + +export declare const strSum: string; + +export { } +", "esm": "export declare const num1 = 1; export declare const num2 = 2; diff --git a/tests/integration/dts/bundle-false/auto-extension/rslib.config.ts b/tests/integration/dts/bundle-false/auto-extension/rslib.config.ts index fff831d5a..f868f9b59 100644 --- a/tests/integration/dts/bundle-false/auto-extension/rslib.config.ts +++ b/tests/integration/dts/bundle-false/auto-extension/rslib.config.ts @@ -9,6 +9,7 @@ export default defineConfig({ generateBundleCjsConfig({ bundle: false, dts: { + autoExtension: true, bundle: false, }, }), diff --git a/tests/integration/dts/bundle-false/basic/rslib.config.ts b/tests/integration/dts/bundle-false/basic/rslib.config.ts index 0afd630fe..37137f947 100644 --- a/tests/integration/dts/bundle-false/basic/rslib.config.ts +++ b/tests/integration/dts/bundle-false/basic/rslib.config.ts @@ -11,6 +11,9 @@ export default defineConfig({ }), generateBundleCjsConfig({ bundle: false, + dts: { + bundle: false, + }, }), ], source: { diff --git a/tests/integration/dts/bundle/auto-extension/rslib.config.ts b/tests/integration/dts/bundle/auto-extension/rslib.config.ts index 91c2b05a6..da354b7d3 100644 --- a/tests/integration/dts/bundle/auto-extension/rslib.config.ts +++ b/tests/integration/dts/bundle/auto-extension/rslib.config.ts @@ -7,6 +7,7 @@ export default defineConfig({ generateBundleCjsConfig({ dts: { bundle: true, + autoExtension: true, }, }), ], diff --git a/tests/integration/dts/bundle/basic/rslib.config.ts b/tests/integration/dts/bundle/basic/rslib.config.ts index 096228bd7..efe7a9269 100644 --- a/tests/integration/dts/bundle/basic/rslib.config.ts +++ b/tests/integration/dts/bundle/basic/rslib.config.ts @@ -8,7 +8,11 @@ export default defineConfig({ bundle: true, }, }), - generateBundleCjsConfig(), + generateBundleCjsConfig({ + dts: { + bundle: true, + }, + }), ], source: { entry: { diff --git a/tests/integration/dts/index.test.ts b/tests/integration/dts/index.test.ts index 53c198291..1897a2278 100644 --- a/tests/integration/dts/index.test.ts +++ b/tests/integration/dts/index.test.ts @@ -15,6 +15,16 @@ describe('dts when bundle: false', () => { "/tests/integration/dts/bundle-false/basic/dist/esm/utils/strings.d.ts", ] `); + + expect(files.cjs).toMatchInlineSnapshot(` + [ + "/tests/integration/dts/bundle-false/basic/dist/cjs/index.d.ts", + "/tests/integration/dts/bundle-false/basic/dist/cjs/sum.d.ts", + "/tests/integration/dts/bundle-false/basic/dist/cjs/utils/numbers.d.ts", + "/tests/integration/dts/bundle-false/basic/dist/cjs/utils/strings.d.ts", + ] + `); + expect(contents.esm).toMatchSnapshot(); }); @@ -72,6 +82,11 @@ describe('dts when bundle: true', () => { expect(entryFiles.esm).toMatchInlineSnapshot( `"/tests/integration/dts/bundle/basic/dist/esm/index.d.ts"`, ); + + expect(entryFiles.cjs).toMatchInlineSnapshot( + `"/tests/integration/dts/bundle/basic/dist/cjs/index.d.ts"`, + ); + expect(entries).toMatchSnapshot(); });