@@ -1549,32 +1549,28 @@ const composeBundlelessExternalConfig = (
15491549 // If data.request already have an extension, we replace it with new extension
15501550 // This may result in a change in semantics,
15511551 // user should use copy to keep origin file or use another separate entry to deal this
1552- if ( resolvedRequest . startsWith ( '.' ) ) {
1552+ if ( resolvedRequest . startsWith ( '.' ) && isResolved ) {
15531553 const ext = extname ( resolvedRequest ) ;
15541554
15551555 if ( ext ) {
15561556 // 1. js files hit JS_EXTENSIONS_PATTERN, ./foo.ts -> ./foo.mjs
15571557 if ( JS_EXTENSIONS_PATTERN . test ( resolvedRequest ) ) {
1558- if ( isResolved ) {
1559- resolvedRequest = resolvedRequest . replace (
1560- / \. [ ^ . ] + $ / ,
1561- jsRedirectExtension
1562- ? jsExtension
1563- : JS_EXTENSIONS_PATTERN . test ( originExtension )
1564- ? originExtension
1565- : '' ,
1566- ) ;
1567- } else {
1568- resolvedRequest = request ;
1569- }
1558+ resolvedRequest = resolvedRequest . replace (
1559+ / \. [ ^ . ] + $ / ,
1560+ jsRedirectExtension
1561+ ? jsExtension
1562+ : JS_EXTENSIONS_PATTERN . test ( originExtension )
1563+ ? originExtension
1564+ : '' ,
1565+ ) ;
15701566 } else {
15711567 // 2. asset files, does not match jsExtensionsPattern, eg: ./foo.png -> ./foo.mjs
15721568 // non-js && non-css files
15731569 resolvedRequest = assetRedirectPath
15741570 ? redirectedPath
15751571 : request ;
15761572
1577- if ( assetRedirectExtension && isResolved ) {
1573+ if ( assetRedirectExtension ) {
15781574 resolvedRequest = resolvedRequest . replace (
15791575 / \. [ ^ . ] + $ / ,
15801576 jsExtension ,
@@ -1583,7 +1579,7 @@ const composeBundlelessExternalConfig = (
15831579 }
15841580 } else {
15851581 // 1. js files hit JS_EXTENSIONS_PATTERN,./foo ->./foo.mjs
1586- if ( jsRedirectExtension && isResolved ) {
1582+ if ( jsRedirectExtension ) {
15871583 // If the import path refers to a directory,
15881584 // it most likely actually refers to a `index.*` file due to Node's module resolution.
15891585 // When redirect.js.path is set to false, index should still be added before adding extension.
0 commit comments