Skip to content

Commit b9ae23e

Browse files
authored
feat: enable autoExtension by default (#70)
1 parent 5b4384e commit b9ae23e

File tree

6 files changed

+74
-28
lines changed

6 files changed

+74
-28
lines changed

e2e/cases/autoExtension/index.test.ts

Lines changed: 35 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,41 @@
11
import { extname, join } from 'node:path';
22
import { buildAndGetResults } from '@e2e/helper';
3-
import { expect, test } from 'vitest';
3+
import { describe, expect, test } from 'vitest';
44

5-
test('autoExtension generate .mjs in build artifacts with esm format when type is commonjs', async () => {
6-
const fixturePath = join(__dirname, 'type-commonjs');
7-
const { entryFiles } = await buildAndGetResults(fixturePath);
8-
expect(extname(entryFiles.esm!)).toEqual('.mjs');
9-
expect(extname(entryFiles.cjs!)).toEqual('.js');
5+
describe('autoExtension: true', () => {
6+
test('generate .mjs in build artifacts with esm format when type is commonjs', async () => {
7+
const fixturePath = join(__dirname, 'type-commonjs');
8+
const { entryFiles } = await buildAndGetResults(fixturePath);
9+
expect(extname(entryFiles.esm!)).toEqual('.mjs');
10+
expect(extname(entryFiles.cjs!)).toEqual('.js');
11+
});
12+
13+
test('generate .cjs in build artifacts with cjs format when type is module', async () => {
14+
const fixturePath = join(__dirname, 'type-module');
15+
const { entryFiles } = await buildAndGetResults(fixturePath);
16+
expect(extname(entryFiles.esm!)).toEqual('.js');
17+
expect(extname(entryFiles.cjs!)).toEqual('.cjs');
18+
});
1019
});
1120

12-
test('autoExtension generate .cjs in build artifacts with cjs format when type is module', async () => {
13-
const fixturePath = join(__dirname, 'type-module');
14-
const { entryFiles } = await buildAndGetResults(fixturePath);
15-
expect(extname(entryFiles.esm!)).toEqual('.js');
16-
expect(extname(entryFiles.cjs!)).toEqual('.cjs');
21+
describe('autoExtension: false', () => {
22+
test('generate .js in both cjs and esm build artifacts when type is commonjs', async () => {
23+
const fixturePath = join(__dirname, 'type-commonjs');
24+
const { entryFiles } = await buildAndGetResults(
25+
fixturePath,
26+
'autoExtension.false.config.ts',
27+
);
28+
expect(extname(entryFiles.esm!)).toEqual('.js');
29+
expect(extname(entryFiles.cjs!)).toEqual('.js');
30+
});
31+
32+
test('generate .js in both cjs and esm build artifacts when type is module', async () => {
33+
const fixturePath = join(__dirname, 'type-module');
34+
const { entryFiles } = await buildAndGetResults(
35+
fixturePath,
36+
'autoExtension.false.config.ts',
37+
);
38+
expect(extname(entryFiles.esm!)).toEqual('.js');
39+
expect(extname(entryFiles.cjs!)).toEqual('.js');
40+
});
1741
});
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import { generateBundleCjsConfig, generateBundleEsmConfig } from '@e2e/helper';
2+
import { defineConfig } from '@rslib/core';
3+
4+
export default defineConfig({
5+
lib: [
6+
generateBundleEsmConfig(__dirname, {
7+
autoExtension: false,
8+
}),
9+
generateBundleCjsConfig(__dirname, {
10+
autoExtension: false,
11+
}),
12+
],
13+
source: {
14+
entry: {
15+
main: './src/index.ts',
16+
},
17+
},
18+
});

e2e/cases/autoExtension/type-commonjs/rslib.config.ts

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,7 @@ import { generateBundleCjsConfig, generateBundleEsmConfig } from '@e2e/helper';
22
import { defineConfig } from '@rslib/core';
33

44
export default defineConfig({
5-
lib: [
6-
generateBundleEsmConfig(__dirname, {
7-
autoExtension: true,
8-
}),
9-
generateBundleCjsConfig(__dirname, {
10-
autoExtension: true,
11-
}),
12-
],
5+
lib: [generateBundleEsmConfig(__dirname), generateBundleCjsConfig(__dirname)],
136
source: {
147
entry: {
158
main: './src/index.ts',
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import { generateBundleCjsConfig, generateBundleEsmConfig } from '@e2e/helper';
2+
import { defineConfig } from '@rslib/core';
3+
4+
export default defineConfig({
5+
lib: [
6+
generateBundleEsmConfig(__dirname, {
7+
autoExtension: false,
8+
}),
9+
generateBundleCjsConfig(__dirname, {
10+
autoExtension: false,
11+
}),
12+
],
13+
source: {
14+
entry: {
15+
main: './src/index.ts',
16+
},
17+
},
18+
});

e2e/cases/autoExtension/type-module/rslib.config.ts

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,7 @@ import { generateBundleCjsConfig, generateBundleEsmConfig } from '@e2e/helper';
22
import { defineConfig } from '@rslib/core';
33

44
export default defineConfig({
5-
lib: [
6-
generateBundleEsmConfig(__dirname, {
7-
autoExtension: true,
8-
}),
9-
generateBundleCjsConfig(__dirname, {
10-
autoExtension: true,
11-
}),
12-
],
5+
lib: [generateBundleEsmConfig(__dirname), generateBundleCjsConfig(__dirname)],
136
source: {
147
entry: {
158
main: './src/index.ts',

packages/core/src/config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -387,7 +387,7 @@ async function composeLibRsbuildConfig(
387387
) {
388388
const config = mergeRsbuildConfig<LibConfig>(rsbuildConfig, libConfig);
389389

390-
const { format, autoExtension = false } = config;
390+
const { format, autoExtension = true } = config;
391391
const formatConfig = composeFormatConfig(format!);
392392
const autoExtensionConfig = composeAutoExtensionConfig(
393393
format!,

0 commit comments

Comments
 (0)