Skip to content

Commit 6a439bf

Browse files
committed
chore: update
1 parent 17fee18 commit 6a439bf

File tree

6 files changed

+25
-13
lines changed

6 files changed

+25
-13
lines changed

packages/core/src/config.ts

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import {
1818
DEFAULT_CONFIG_EXTENSIONS,
1919
DEFAULT_CONFIG_NAME,
2020
DTS_EXTENSIONS_PATTERN,
21+
JS_EXTENSIONS_PATTERN,
2122
RSLIB_ENTRY_QUERY,
2223
SWC_HELPERS,
2324
} from './constant';
@@ -1060,6 +1061,7 @@ const composeBundlelessExternalConfig = (
10601061
const styleRedirectExtension = redirect.style?.extension ?? true;
10611062
const jsRedirectPath = redirect.js?.path ?? true;
10621063
const jsRedirectExtension = redirect.js?.extension ?? true;
1064+
const assetRedirect = redirect.asset ?? true;
10631065

10641066
let resolver: RspackResolver | undefined;
10651067

@@ -1154,15 +1156,26 @@ const composeBundlelessExternalConfig = (
11541156
// If data.request already have an extension, we replace it with new extension
11551157
// This may result in a change in semantics,
11561158
// user should use copy to keep origin file or use another separate entry to deal this
1157-
if (jsRedirectExtension && resolvedRequest.startsWith('.')) {
1159+
if (resolvedRequest.startsWith('.')) {
11581160
const ext = extname(resolvedRequest);
11591161
if (ext) {
11601162
// 1. js files hit JS_EXTENSIONS_PATTERN, ./foo.ts -> ./foo.mjs
1161-
// 2. asset files, does not match jsExtensionsPattern, eg: ./foo.png -> ./foo.mjs
1162-
resolvedRequest = resolvedRequest.replace(
1163-
/\.[^.]+$/,
1164-
jsExtension,
1165-
);
1163+
if (JS_EXTENSIONS_PATTERN.test(resolvedRequest)) {
1164+
if (jsRedirectExtension) {
1165+
resolvedRequest = resolvedRequest.replace(
1166+
/\.[^.]+$/,
1167+
jsExtension,
1168+
);
1169+
}
1170+
} else {
1171+
// 2. asset files, does not match jsExtensionsPattern, eg: ./foo.png -> ./foo.mjs
1172+
if (assetRedirect) {
1173+
resolvedRequest = resolvedRequest.replace(
1174+
/\.[^.]+$/,
1175+
jsExtension,
1176+
);
1177+
}
1178+
}
11661179
} else {
11671180
resolvedRequest = `${resolvedRequest}${jsExtension}`;
11681181
}

packages/core/src/types/config.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -188,8 +188,8 @@ export type Redirect = {
188188
js?: JsRedirect;
189189
/** Controls the redirect of the import paths of output style files. */
190190
style?: StyleRedirect;
191-
// TODO: support other redirects
192-
// asset?: boolean;
191+
/** Controls the redirect of the import paths of output asset files. */
192+
asset?: boolean;
193193
// dts?: DtsRedirect;
194194
};
195195

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
import svgUrl from './assets/logo.svg';
22

3-
console.log(svgUrl);
3+
console.log('default Import', 'reexport', svgUrl);
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
import { ReactComponent } from './assets/logo.svg';
22

3-
console.log(ReactComponent);
3+
console.log('namedImport', 'ReactComponent', ReactComponent);
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
import logo from './assets/logo.svg?react';
1+
import ReactComponent from './assets/logo.svg?react';
22

3-
console.log(logo);
3+
console.log('queryImport', 'ReactComponent', ReactComponent);

tests/integration/bundle-false/svgr/rslib.config.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ export default defineConfig({
1919
},
2020
output: {
2121
target: 'web',
22-
minify: false,
2322
},
2423
plugins: [pluginReact(), pluginSvgr({ mixedImport: true })],
2524
});

0 commit comments

Comments
 (0)