@@ -728,7 +728,11 @@ protected DependencyInstallationResult installDependencies(Set<Path> filesToExtr
728728 // For named packages, find the main file.
729729 String name = getChildAsString (packageJson , "name" );
730730 if (name != null ) {
731- Path entryPoint = guessPackageMainFile (path , packageJson );
731+ Path entryPoint = guessPackageMainFile (path , packageJson , FileType .TYPESCRIPT .getExtensions ());
732+ if (entryPoint == null ) {
733+ // Try a TypeScript-recognized JS extension instead
734+ entryPoint = guessPackageMainFile (path , packageJson , Arrays .asList (".js" , ".jsx" ));
735+ }
732736 if (entryPoint != null ) {
733737 System .out .println (relativePath + ": Main file set to " + sourceRoot .relativize (entryPoint ));
734738 packageMainFile .put (name , entryPoint );
@@ -788,12 +792,11 @@ protected DependencyInstallationResult installDependencies(Set<Path> filesToExtr
788792 * given package - that is, the file you get when importing the package by name
789793 * without any path suffix.
790794 */
791- private Path guessPackageMainFile (Path packageJsonFile , JsonObject packageJson ) {
795+ private Path guessPackageMainFile (Path packageJsonFile , JsonObject packageJson , Iterable < String > extensions ) {
792796 Path packageDir = packageJsonFile .getParent ();
793797
794798 // Try <package_dir>/index.ts.
795- // Do not allow JavaScript extensions at this point as it might be compiled output (will be attempted later).
796- Path resolved = tryResolveWithExtensions (packageDir , "index" , FileType .TYPESCRIPT .getExtensions ());
799+ Path resolved = tryResolveWithExtensions (packageDir , "index" , extensions );
797800 if (resolved != null ) {
798801 return resolved ;
799802 }
@@ -828,7 +831,7 @@ private Path guessPackageMainFile(Path packageJsonFile, JsonObject packageJson)
828831
829832 // Strip off extensions until a file can be found
830833 while (true ) {
831- resolved = tryResolveTypeScriptOrJavaScriptFile (sourceDir , candidatePath .toString ());
834+ resolved = tryResolveWithExtensions (sourceDir , candidatePath .toString (), extensions );
832835 if (resolved != null ) {
833836 return resolved ;
834837 }
@@ -838,12 +841,6 @@ private Path guessPackageMainFile(Path packageJsonFile, JsonObject packageJson)
838841 }
839842 }
840843 }
841-
842- // Try <package_dir>/index.js - this time allowing JS extension.
843- resolved = tryResolveWithExtensions (packageDir , "index" , FileType .JS .getExtensions ());
844- if (resolved != null ) {
845- return resolved ;
846- }
847844
848845 return resolved ;
849846 }
0 commit comments