Skip to content

Commit bfb62e0

Browse files
authored
fix: only treat files within context as source file (#677)
1 parent 22efc8d commit bfb62e0

File tree

34 files changed

+204
-55
lines changed

34 files changed

+204
-55
lines changed

Diff for: packages/core/src/config.ts

+14-3
Original file line numberDiff line numberDiff line change
@@ -878,6 +878,12 @@ const traverseEntryQuery = (
878878
export const appendEntryQuery = (entries: RsbuildConfigEntry): RsbuildEntry =>
879879
traverseEntryQuery(entries, (item) => `${item}?${RSLIB_ENTRY_QUERY}`);
880880

881+
export const resolveEntryPath = (
882+
entries: RsbuildConfigEntry,
883+
root: string,
884+
): RsbuildEntry =>
885+
traverseEntryQuery(entries, (item) => path.resolve(root, item));
886+
881887
const composeEntryConfig = async (
882888
rawEntry: RsbuildConfigEntry,
883889
bundle: LibConfig['bundle'],
@@ -939,7 +945,7 @@ const composeEntryConfig = async (
939945
return {
940946
entryConfig: {
941947
source: {
942-
entry: appendEntryQuery(entries),
948+
entry: appendEntryQuery(resolveEntryPath(entries, root)),
943949
},
944950
},
945951
lcp: null,
@@ -1044,6 +1050,7 @@ const composeBundlelessExternalConfig = (
10441050
redirect: Redirect,
10451051
cssModulesAuto: CssLoaderOptionsAuto,
10461052
bundle: boolean,
1053+
rootPath: string,
10471054
): {
10481055
config: EnvironmentConfig;
10491056
resolvedJsRedirect?: DeepRequired<JsRedirect>;
@@ -1083,9 +1090,12 @@ const composeBundlelessExternalConfig = (
10831090
let resolvedRequest = request;
10841091
// use resolver to resolve the request
10851092
resolvedRequest = await resolver!(context!, resolvedRequest);
1093+
const isSubpath = resolvedRequest.startsWith(
1094+
rootPath + path.sep,
1095+
);
10861096

1087-
// only handle the request that is not in node_modules
1088-
if (!resolvedRequest.includes('node_modules')) {
1097+
// only handle the request that within the root path
1098+
if (isSubpath) {
10891099
resolvedRequest = normalizeSlash(
10901100
path.relative(path.dirname(issuer), resolvedRequest),
10911101
);
@@ -1359,6 +1369,7 @@ async function composeLibRsbuildConfig(
13591369
redirect,
13601370
cssModulesAuto,
13611371
bundle,
1372+
rootPath,
13621373
);
13631374
const {
13641375
config: targetConfig,

Diff for: pnpm-lock.yaml

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: scripts/dictionary.txt

+1
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ icss
4747
idents
4848
iife
4949
imagex
50+
importee
5051
jfif
5152
jiti
5253
jscpuprofile
File renamed without changes.

Diff for: tests/integration/asset/limit/src/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
import logo from '../../../../assets/logo.svg';
1+
import logo from '../assets/logo.svg';
22

33
export default logo;
File renamed without changes.

Diff for: tests/integration/asset/name/src/index.jsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import a from '../../../../assets/image.png';
1+
import a from '../assets/image.png';
22

33
export default () => {
44
return <img src={a} alt="" />;

Diff for: tests/integration/asset/path/assets/image.png

174 KB
Loading

Diff for: tests/integration/asset/path/src/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
import a from '../../../../assets/image.png';
1+
import a from '../assets/image.png';
22

33
export default a;

Diff for: tests/integration/asset/public-path/assets/logo.svg

+7
Loading

Diff for: tests/integration/asset/public-path/src/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
import logo from '../../../../assets/logo.svg';
1+
import logo from '../assets/logo.svg';
22

33
export default logo;

Diff for: tests/integration/asset/svgr/assets/logo.svg

+7
Loading

Diff for: tests/integration/asset/svgr/src/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
import logo from '../../../../assets/logo.svg?react';
1+
import logo from '../assets/logo.svg?react';
22

33
console.log(logo);

Diff for: tests/integration/asset/svgr/src/namedExport.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
import { ReactComponent } from '../../../../assets/logo.svg';
1+
import { ReactComponent } from '../assets/logo.svg';
22

33
console.log(ReactComponent);
174 KB
Loading

Diff for: tests/integration/bundle-false/asset/assets/logo.svg

+7
Loading

Diff for: tests/integration/bundle-false/asset/src/index.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import image from '../../../../assets/image.png';
2-
import logoURL from '../../../../assets/logo.svg';
1+
import image from '../assets/image.png';
2+
import logoURL from '../assets/logo.svg';
33

44
console.log(logoURL);
55
console.log(image);

Diff for: tests/integration/bundle-false/index.test.ts

+15
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,21 @@ test('basic', async () => {
6767
`);
6868
});
6969

70+
test('monorepo', async () => {
71+
const fixturePath = join(__dirname, 'monorepo/importer');
72+
const { contents } = await buildAndGetResults({ fixturePath });
73+
expect(
74+
queryContent(contents.esm, 'index.js', {
75+
basename: true,
76+
}).content,
77+
).toMatchInlineSnapshot(`
78+
"import * as __WEBPACK_EXTERNAL_MODULE_bundle_false_monorepo_importee_test_35ca595f__ from "bundle-false-monorepo-importee-test";
79+
const src_rslib_entry_ = __WEBPACK_EXTERNAL_MODULE_bundle_false_monorepo_importee_test_35ca595f__["default"];
80+
export { src_rslib_entry_ as default };
81+
"
82+
`);
83+
});
84+
7085
test('single file', async () => {
7186
const fixturePath = join(__dirname, 'single-file');
7287
const { files } = await buildAndGetResults({ fixturePath });
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export default 'importee';
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"name": "bundle-false-monorepo-importee-test",
3+
"version": "1.0.0",
4+
"private": true,
5+
"type": "module",
6+
"main": "./index.js"
7+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"name": "bundle-false-monorepo-importer-test",
3+
"version": "1.0.0",
4+
"private": true,
5+
"type": "module",
6+
"dependencies": {
7+
"bundle-false-monorepo-importee-test": "workspace:*"
8+
}
9+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import { defineConfig } from '@rslib/core';
2+
import { generateBundleCjsConfig, generateBundleEsmConfig } from 'test-helper';
3+
4+
export default defineConfig({
5+
lib: [
6+
generateBundleEsmConfig({
7+
bundle: false,
8+
}),
9+
generateBundleCjsConfig({
10+
bundle: false,
11+
}),
12+
],
13+
source: {
14+
entry: {
15+
index: ['./src/**'],
16+
},
17+
},
18+
});
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import importee from 'bundle-false-monorepo-importee-test';
2+
3+
export default importee;

Diff for: tests/integration/bundle-false/svgr/assets/logo.svg

+7
Loading

Diff for: tests/integration/bundle-false/svgr/src/index.jsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
import Logo from '../../../../assets/logo.svg?react';
1+
import Logo from '../assets/logo.svg?react';
22

33
export default Logo;

Diff for: tests/integration/redirect/js-not-resolve/src/index.js

+1-3
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,4 @@ import prettier from 'prettier';
55
import bar from './bar.js';
66
import foo from './foo';
77

8-
console.log('prettier: ', prettier);
9-
10-
export default lodash.toUpper(foo + bar);
8+
export default lodash.toUpper(foo + bar + prettier.version);

0 commit comments

Comments
 (0)