@@ -122,29 +122,37 @@ export class PathsPlugin implements Tapable {
122122
123123 this . _nmf . plugin ( 'before-resolve' , ( request : NormalModuleFactoryRequest ,
124124 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+
125130 for ( let mapping of this . _mappings ) {
126131 const match = request . request . match ( mapping . aliasPattern ) ;
127132 if ( ! match ) { continue ; }
128-
129133 let newRequestStr = mapping . target ;
130134 if ( ! mapping . onlyModule ) {
131135 newRequestStr = newRequestStr . replace ( '*' , match [ 1 ] ) ;
132136 }
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+ }
144154 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 } ) ) ;
148156 }
149157 }
150158
0 commit comments