@@ -122,29 +122,37 @@ export class PathsPlugin implements Tapable {
122
122
123
123
this . _nmf . plugin ( 'before-resolve' , ( request : NormalModuleFactoryRequest ,
124
124
callback : Callback < any > ) => {
125
+ // Only work on TypeScript issuers.
126
+ if ( ! request . contextInfo . issuer || ! request . contextInfo . issuer . endsWith ( '.ts' ) ) {
127
+ return callback ( null , request ) ;
128
+ }
129
+
125
130
for ( let mapping of this . _mappings ) {
126
131
const match = request . request . match ( mapping . aliasPattern ) ;
127
132
if ( ! match ) { continue ; }
128
-
129
133
let newRequestStr = mapping . target ;
130
134
if ( ! mapping . onlyModule ) {
131
135
newRequestStr = newRequestStr . replace ( '*' , match [ 1 ] ) ;
132
136
}
133
-
134
- const moduleResolver : ts . ResolvedModuleWithFailedLookupLocations =
135
- ts . nodeModuleNameResolver (
136
- newRequestStr ,
137
- this . _absoluteBaseUrl ,
138
- this . _compilerOptions ,
139
- this . _host
140
- ) ;
141
- const moduleFilePath = moduleResolver . resolvedModule ?
142
- moduleResolver . resolvedModule . resolvedFileName : '' ;
143
-
137
+ const moduleResolver = ts . resolveModuleName (
138
+ request . request ,
139
+ request . contextInfo . issuer ,
140
+ this . _compilerOptions ,
141
+ this . _host
142
+ ) ;
143
+ let moduleFilePath = moduleResolver . resolvedModule
144
+ && moduleResolver . resolvedModule . resolvedFileName ;
145
+
146
+ // If TypeScript gives us a .d.ts it's probably a node module and we need to let webpack
147
+ // do the resolution.
148
+ if ( moduleFilePath && moduleFilePath . endsWith ( '.d.ts' ) ) {
149
+ moduleFilePath = moduleFilePath . replace ( / \. d \. t s $ / , '.js' ) ;
150
+ if ( ! this . _host . fileExists ( moduleFilePath ) ) {
151
+ continue ;
152
+ }
153
+ }
144
154
if ( moduleFilePath ) {
145
- return callback ( null , Object . assign ( { } , request , {
146
- request : moduleFilePath . includes ( '.d.ts' ) ? newRequestStr : moduleFilePath
147
- } ) ) ;
155
+ return callback ( null , Object . assign ( { } , request , { request : moduleFilePath } ) ) ;
148
156
}
149
157
}
150
158
0 commit comments