@@ -21,12 +21,11 @@ export function resolveDependencies(program: ts.Program, files: ProcessedFile[],
2121 return outFiles ;
2222}
2323
24- function resolveFileDependencies ( file : ProcessedFile , rootDir : string , emitHost : EmitHost ) : ProcessedFile [ ] {
25- const fileDir = path . dirname ( file . fileName ) ;
24+ function resolveFileDependencies ( file : ProcessedFile , projectRootDir : string , emitHost : EmitHost ) : ProcessedFile [ ] {
2625 const dependencies : ProcessedFile [ ] = [ ] ;
2726 for ( const required of findRequiredPaths ( file . code ) ) {
2827 // Try to resolve the import starting from the directory `file` is in
29- const resolvedDependency = resolveDependency ( fileDir , required ) ;
28+ const resolvedDependency = resolveDependency ( projectRootDir , required ) ;
3029 if ( resolvedDependency ) {
3130 // If dependency resolved successfully, read its content
3231 const dependencyContent = emitHost . readFile ( resolvedDependency ) ;
@@ -35,26 +34,20 @@ function resolveFileDependencies(file: ProcessedFile, rootDir: string, emitHost:
3534 }
3635
3736 // Figure out resolved require path and dependency output path
38- let resolvedRequire = path . relative ( fileDir , resolvedDependency ) ;
39- let dependencyOutPath = resolvedDependency ;
40- if ( resolvedRequire . includes ( ".." ) ) {
41- // If the resolved require includes a parent, copy the dependency to a new path
42- // to avoid require paths with parent directories
43- resolvedRequire = path . relative ( rootDir , resolvedDependency ) ;
44- dependencyOutPath = path . join ( fileDir , resolvedRequire ) ;
45- }
37+ const resolvedRequire = path . relative ( projectRootDir , resolvedDependency ) ;
4638
4739 replaceRequireInCode ( file , required , resolvedRequire ) ;
4840 replaceRequireInSourceMap ( file , required , resolvedRequire ) ;
4941
5042 // Add dependency to output and resolve its dependencies recursively
5143 const dependency = {
52- fileName : dependencyOutPath ,
44+ fileName : resolvedDependency ,
5345 code : dependencyContent ,
5446 } ;
55- dependencies . push ( dependency , ...resolveFileDependencies ( dependency , rootDir , emitHost ) ) ;
47+ dependencies . push ( dependency , ...resolveFileDependencies ( dependency , projectRootDir , emitHost ) ) ;
5648 } else {
5749 //throw `TODO: COULD NOT RESOLVE ${required}`;
50+ console . error ( `Failed to resolve ${ required } referenced in ${ file . fileName } .` ) ;
5851 }
5952 }
6053 return dependencies ;
0 commit comments