Skip to content

Commit 9612ed9

Browse files
authored
Merge branch 'main' into renovate/all-patch
2 parents f2ccb3c + cb35f12 commit 9612ed9

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+505
-55
lines changed

.github/renovate.json5

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
$schema: 'https://docs.renovatebot.com/renovate-schema.json',
33
extends: ['config:recommended', 'schedule:weekly'],
4-
ignorePaths: ['**/tests/**', '**/node_modules/**'],
4+
ignorePaths: ['**/tests/**', '**/node_modules/**', '**/e2e/cases/**'],
55
packageRules: [
66
// Use chore as semantic commit type for commit messages
77
{
@@ -50,6 +50,8 @@
5050
ignoreDeps: [
5151
// manually update some packages
5252
'pnpm',
53+
'@rspack/core',
54+
'@rspack/core-canary',
5355
// align Node.js version minimum requirements
5456
'@types/node',
5557
'node',

e2e/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ Rslib will try to cover the common scenarios in the [integration test cases of M
3030
| minify | 🟢 | |
3131
| platform | 🟢 | |
3232
| redirect | ⚪️ | |
33-
| resolve | ⚪️ | |
33+
| resolve | 🟢 | |
3434
| shims | 🟡 | Support shims `__filename` and `__dirname` in esm</br> `import.meta.url` in cjs need to be supported |
3535
| sideEffects | ⚪️ | |
3636
| sourceDir | ⚪️ | |

e2e/cases/alias/package.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"name": "alias-test",
3+
"version": "1.0.0",
4+
"private": true,
5+
"type": "module"
6+
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "auto-external-default-test",
33
"dependencies": {
4-
"ora": "8.0.1",
4+
"ora": "8.1.0",
55
"react": "^18.3.1"
66
}
77
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "auto-external-false-test",
33
"dependencies": {
4-
"ora": "8.0.1",
4+
"ora": "8.1.0",
55
"react": "^18.3.1"
66
}
77
}

e2e/cases/minify/default/package.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"name": "minify-default-test",
3+
"version": "1.0.0",
4+
"private": true,
5+
"type": "module"
6+
}

e2e/cases/resolve/data-url/index.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import x from 'data:text/javascript,export default 42';
2+
3+
console.log('x:', x);
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"name": "resolve-data-url-test",
3+
"version": "1.0.0",
4+
"private": true,
5+
"type": "module"
6+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import { generateBundleCjsConfig, generateBundleEsmConfig } from '@e2e/helper';
2+
import { defineConfig } from '@rslib/core';
3+
4+
export default defineConfig({
5+
lib: [generateBundleEsmConfig(), generateBundleCjsConfig()],
6+
source: {
7+
entry: {
8+
index: './index.ts',
9+
},
10+
},
11+
});

e2e/cases/resolve/false/bar.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export const bar = 'bar';
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"name": "browser-false",
3+
"version": "1.0.0",
4+
"private": true,
5+
"browser": {
6+
"./util": false
7+
}
8+
}

e2e/cases/resolve/false/index.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import { bar } from './bar';
2+
import foo from './browser-false/util';
3+
4+
console.log('foo:', foo); // the value of `foo` should `{}`
5+
console.log('bar: ', bar);

e2e/cases/resolve/false/package.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"name": "resolve-false-test",
3+
"version": "1.0.0",
4+
"private": true,
5+
"type": "module"
6+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import { generateBundleCjsConfig, generateBundleEsmConfig } from '@e2e/helper';
2+
import { defineConfig } from '@rslib/core';
3+
4+
export default defineConfig({
5+
lib: [generateBundleEsmConfig(), generateBundleCjsConfig()],
6+
source: {
7+
entry: {
8+
index: './index.ts',
9+
},
10+
},
11+
});

e2e/cases/resolve/index.test.ts

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
import { join } from 'node:path';
2+
import { buildAndGetResults } from '@e2e/helper';
3+
import { expect, test } from 'vitest';
4+
5+
test('resolve data url', async () => {
6+
const fixturePath = join(__dirname, 'data-url');
7+
const { entries, isSuccess } = await buildAndGetResults(fixturePath);
8+
9+
expect(isSuccess).toBeTruthy();
10+
expect(entries.esm).toMatchInlineSnapshot(`
11+
"// CONCATENATED MODULE: data:text/javascript,export default 42
12+
const javascript_export_default_42 = 42;
13+
// CONCATENATED MODULE: ./index.ts
14+
console.log('x:', javascript_export_default_42);
15+
"
16+
`);
17+
});
18+
19+
// TODO: false module path is different from linux and windows
20+
// EXTERNAL MODULE: <ROOT>/rslib/e2e/cases/resolve/false/./browser-false/util (ignored)
21+
test.todo('resolve false', async () => {
22+
const fixturePath = join(__dirname, 'false');
23+
const { entries, isSuccess } = await buildAndGetResults(fixturePath);
24+
25+
expect(isSuccess).toBeTruthy();
26+
expect(entries.esm).toMatchSnapshot();
27+
});
28+
29+
test('resolve node protocol', async () => {
30+
const fixturePath = join(__dirname, 'node-protocol');
31+
const { entries, isSuccess } = await buildAndGetResults(fixturePath);
32+
33+
expect(isSuccess).toBeTruthy();
34+
expect(entries.esm).toMatchInlineSnapshot(`
35+
"import * as __WEBPACK_EXTERNAL_MODULE_node_path__ from \\"node:path\\";
36+
// CONCATENATED MODULE: external \\"node:path\\"
37+
var external_node_path_namespaceObject = __WEBPACK_EXTERNAL_MODULE_node_path__;
38+
// CONCATENATED MODULE: ./index.ts
39+
const { join } = external_node_path_namespaceObject[\\"default\\"];
40+
export { join };
41+
"
42+
`);
43+
});
44+
45+
test('resolve with condition exports', async () => {
46+
const fixturePath = join(__dirname, 'with-condition-exports');
47+
const { contents, isSuccess } = await buildAndGetResults(fixturePath);
48+
49+
const nodeResults = Object.values(contents.esm0!);
50+
const browserResults = Object.values(contents.esm1!);
51+
52+
expect(isSuccess).toBeTruthy();
53+
54+
expect(nodeResults[0]).toContain('lib1 mjs');
55+
expect(nodeResults[1]).toContain('lib2 module');
56+
expect(nodeResults[2]).toContain('node');
57+
expect(nodeResults[3]).toContain('lib1 cjs');
58+
59+
expect(browserResults[0]).toContain('lib1 mjs');
60+
expect(browserResults[1]).toContain('lib2 module');
61+
expect(browserResults[2]).toContain('browser');
62+
expect(browserResults[3]).toContain('lib1 cjs');
63+
});
64+
65+
test('resolve with js extensions', async () => {
66+
const fixturePath = join(__dirname, 'with-js-extensions');
67+
const { entries, isSuccess } = await buildAndGetResults(fixturePath);
68+
69+
expect(isSuccess).toBeTruthy();
70+
expect(entries.esm).toMatchInlineSnapshot(`
71+
"// CONCATENATED MODULE: ./example.mts
72+
const value = 1;
73+
// CONCATENATED MODULE: ./index.ts
74+
console.log(value);
75+
"
76+
`);
77+
});
78+
79+
test('resolve with main fields', async () => {
80+
const fixturePath = join(__dirname, 'with-main-fields');
81+
const { contents, isSuccess } = await buildAndGetResults(fixturePath);
82+
const results = Object.values(contents);
83+
84+
expect(isSuccess).toBeTruthy();
85+
expect(Object.values(results[0]!)[0]).toMatchInlineSnapshot(`
86+
"// CONCATENATED MODULE: ./node_modules/lib1/src/index.ts
87+
const value = 1;
88+
// CONCATENATED MODULE: ./entry1.ts
89+
console.log(value);
90+
"
91+
`);
92+
expect(Object.values(results[1]!)[0]).toContain('main');
93+
expect(Object.values(results[2]!)[0]).toContain('browser');
94+
});
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import path from 'node:path';
2+
3+
export const { join } = path;
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"name": "resolve-node-protocol-test",
3+
"version": "1.0.0",
4+
"private": true,
5+
"type": "module"
6+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import { generateBundleCjsConfig, generateBundleEsmConfig } from '@e2e/helper';
2+
import { defineConfig } from '@rslib/core';
3+
4+
export default defineConfig({
5+
lib: [generateBundleEsmConfig(), generateBundleCjsConfig()],
6+
source: {
7+
entry: {
8+
index: './index.ts',
9+
},
10+
},
11+
output: {
12+
target: 'node',
13+
},
14+
});
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
!node_modules
2+
node_modules/.*
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import { value } from 'lib1';
2+
3+
console.log(value);
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import { value } from 'lib2';
2+
3+
console.log(value);
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import { value } from 'lib3';
2+
3+
console.log(value);
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
console.log(require('lib1').value);

e2e/cases/resolve/with-condition-exports/node_modules/lib1/package.json

Lines changed: 16 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

e2e/cases/resolve/with-condition-exports/node_modules/lib1/src/index.cjs

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

e2e/cases/resolve/with-condition-exports/node_modules/lib1/src/index.mjs

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

e2e/cases/resolve/with-condition-exports/node_modules/lib2/package.json

Lines changed: 17 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

e2e/cases/resolve/with-condition-exports/node_modules/lib2/src/index.cjs

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

e2e/cases/resolve/with-condition-exports/node_modules/lib2/src/index.mjs

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

e2e/cases/resolve/with-condition-exports/node_modules/lib2/src/module.js

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

e2e/cases/resolve/with-condition-exports/node_modules/lib3/package.json

Lines changed: 17 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

e2e/cases/resolve/with-condition-exports/node_modules/lib3/src/browser.js

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

e2e/cases/resolve/with-condition-exports/node_modules/lib3/src/node.js

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"name": "resolve-with-condition-exports-test",
3+
"version": "1.0.0",
4+
"private": true,
5+
"type": "module"
6+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import { generateBundleEsmConfig } from '@e2e/helper';
2+
import { defineConfig } from '@rslib/core';
3+
4+
export default defineConfig({
5+
lib: [
6+
generateBundleEsmConfig({
7+
output: {
8+
distPath: {
9+
root: './dist/node',
10+
},
11+
target: 'node',
12+
},
13+
}),
14+
generateBundleEsmConfig({
15+
output: {
16+
distPath: {
17+
root: './dist/browser',
18+
},
19+
},
20+
}),
21+
],
22+
source: {
23+
entry: {
24+
entry1: ['./entry1.ts'],
25+
entry2: ['./entry2.ts'],
26+
entry3: ['./entry3.ts'],
27+
entry4: ['./entry4.ts'],
28+
},
29+
},
30+
});
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export const value = 1;
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import { value } from './example';
2+
3+
console.log(value);
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"name": "resolve-with-js-extensions-test",
3+
"version": "1.0.0",
4+
"private": true,
5+
"type": "module"
6+
}

0 commit comments

Comments
 (0)