diff --git a/internal/module/resolver.go b/internal/module/resolver.go index 6aceb4238f..d054c1846d 100644 --- a/internal/module/resolver.go +++ b/internal/module/resolver.go @@ -861,7 +861,7 @@ func (r *resolutionState) loadModuleFromSpecificNodeModulesDirectory(ext extensi return fromDirectory } // !!! this is ported exactly, but checking for null seems wrong? - if packageInfo.Exists() && + if rest == "" && packageInfo.Exists() && (packageInfo.Contents.Exports.Type == packagejson.JSONValueTypeNotPresent || packageInfo.Contents.Exports.Type == packagejson.JSONValueTypeNull) && r.esmMode { // EsmMode disables index lookup in `loadNodeModuleFromDirectoryWorker` generally, however non-relative package resolutions still assume diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesNoDirectoryModule.errors.txt b/testdata/baselines/reference/submodule/conformance/nodeModulesNoDirectoryModule.errors.txt new file mode 100644 index 0000000000..b6f165f8b9 --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/nodeModulesNoDirectoryModule.errors.txt @@ -0,0 +1,26 @@ +/index.ts(2,8): error TS2307: Cannot find module 'i-have-a-dir-and-main/dist/dir' or its corresponding type declarations. + + +==== /node_modules/i-have-a-dir-and-main/package.json (0 errors) ==== + { + "name": "i-have-a-dir-and-main", + "version": "1.0.0", + "type": "module", + "main": "dist/index.js" + } + +==== /node_modules/i-have-a-dir-and-main/dist/index.d.ts (0 errors) ==== + export declare const a = 1; + +==== /node_modules/i-have-a-dir-and-main/dist/dir/index.d.ts (0 errors) ==== + export declare const b = 2; + +==== /package.json (0 errors) ==== + { "type": "module" } + +==== /index.ts (1 errors) ==== + import 'i-have-a-dir-and-main' // ok + import 'i-have-a-dir-and-main/dist/dir' // error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2307: Cannot find module 'i-have-a-dir-and-main/dist/dir' or its corresponding type declarations. + \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesNoDirectoryModule.errors.txt.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesNoDirectoryModule.errors.txt.diff deleted file mode 100644 index 028df7e36c..0000000000 --- a/testdata/baselines/reference/submodule/conformance/nodeModulesNoDirectoryModule.errors.txt.diff +++ /dev/null @@ -1,30 +0,0 @@ ---- old.nodeModulesNoDirectoryModule.errors.txt -+++ new.nodeModulesNoDirectoryModule.errors.txt -@@= skipped -0, +0 lines =@@ --/index.ts(2,8): error TS2307: Cannot find module 'i-have-a-dir-and-main/dist/dir' or its corresponding type declarations. -- -- --==== /node_modules/i-have-a-dir-and-main/package.json (0 errors) ==== -- { -- "name": "i-have-a-dir-and-main", -- "version": "1.0.0", -- "type": "module", -- "main": "dist/index.js" -- } -- --==== /node_modules/i-have-a-dir-and-main/dist/index.d.ts (0 errors) ==== -- export declare const a = 1; -- --==== /node_modules/i-have-a-dir-and-main/dist/dir/index.d.ts (0 errors) ==== -- export declare const b = 2; -- --==== /package.json (0 errors) ==== -- { "type": "module" } -- --==== /index.ts (1 errors) ==== -- import 'i-have-a-dir-and-main' // ok -- import 'i-have-a-dir-and-main/dist/dir' // error -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --!!! error TS2307: Cannot find module 'i-have-a-dir-and-main/dist/dir' or its corresponding type declarations. -- -+ \ No newline at end of file