@@ -544,7 +544,7 @@ const PackageConfig& GetPackageConfig(Environment* env,
544544 }
545545
546546 auto entry = env->package_json_cache .emplace (path,
547- PackageConfig { Exists::Yes, IsValid::Yes, has_main, " " });
547+ PackageConfig { Exists::Yes, IsValid::Yes, has_main, main_std });
548548 return entry.first ->second ;
549549}
550550
@@ -585,13 +585,15 @@ Maybe<URL> ResolveMain(Environment* env, const URL& search) {
585585 GetPackageConfig (env, pkg.ToFilePath ());
586586 // Note invalid package.json should throw in resolver
587587 // currently we silently ignore which is incorrect
588- if (!pjson.exists || !pjson.is_valid || !pjson.has_main ) {
588+ if (pjson.exists == Exists::No ||
589+ pjson.is_valid == IsValid::No ||
590+ pjson.has_main == HasMain::No) {
589591 return Nothing<URL>();
590592 }
591593 if (!ShouldBeTreatedAsRelativeOrAbsolutePath (pjson.main )) {
592- return Resolve (env, " ./" + pjson.main , search);
594+ return Resolve (env, " ./" + pjson.main , search, IgnoreMain );
593595 }
594- return Resolve (env, pjson.main , search);
596+ return Resolve (env, pjson.main , search, IgnoreMain );
595597}
596598
597599Maybe<URL> ResolveModule (Environment* env,
@@ -602,7 +604,7 @@ Maybe<URL> ResolveModule(Environment* env,
602604 do {
603605 dir = parent;
604606 Maybe<URL> check =
605- Resolve (env, " ./node_modules/" + specifier, dir, IgnoreMain );
607+ Resolve (env, " ./node_modules/" + specifier, dir, CheckMain );
606608 if (!check.IsNothing ()) {
607609 const size_t limit = specifier.find (' /' );
608610 const size_t spec_len =
0 commit comments