Skip to content

Commit 7be8595

Browse files
committed
Add test for module resolution with package json containing main field referencing js file in sub directory
1 parent 560371d commit 7be8595

6 files changed

+92
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
/index.ts(1,19): error TS2307: Cannot find module 'foo'.
2+
3+
4+
==== /node_modules/foo/package.json (0 errors) ====
5+
{ "name": "foo", "version": "1.2.3", "main": "src/index.js" }
6+
7+
==== /node_modules/foo/src/index.d.ts (0 errors) ====
8+
export const x: number;
9+
10+
==== /index.ts (1 errors) ====
11+
import { x } from "foo";
12+
~~~~~
13+
!!! error TS2307: Cannot find module 'foo'.
14+
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
//// [tests/cases/compiler/moduleResolution_packageJson_yesAtPackageRoot_mainFieldInSubDirectory.ts] ////
2+
3+
//// [package.json]
4+
{ "name": "foo", "version": "1.2.3", "main": "src/index.js" }
5+
6+
//// [index.d.ts]
7+
export const x: number;
8+
9+
//// [index.ts]
10+
import { x } from "foo";
11+
12+
13+
//// [index.js]
14+
"use strict";
15+
exports.__esModule = true;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
=== /node_modules/foo/src/index.d.ts ===
2+
export const x: number;
3+
>x : Symbol(x, Decl(index.d.ts, 0, 12))
4+
5+
=== /index.ts ===
6+
import { x } from "foo";
7+
>x : Symbol(x, Decl(index.ts, 0, 8))
8+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
[
2+
"======== Resolving module 'foo' from '/index.ts'. ========",
3+
"Module resolution kind is not specified, using 'NodeJs'.",
4+
"Loading module 'foo' from 'node_modules' folder, target file type 'TypeScript'.",
5+
"'package.json' does not have a 'typings' field.",
6+
"'package.json' does not have a 'types' field.",
7+
"'package.json' has 'main' field 'src/index.js' that references '/node_modules/foo/src/index.js'.",
8+
"Found 'package.json' at '/node_modules/foo/package.json'. Package ID is 'foo/src/i.d.ts@1.2.3'.",
9+
"File '/node_modules/foo.ts' does not exist.",
10+
"File '/node_modules/foo.tsx' does not exist.",
11+
"File '/node_modules/foo.d.ts' does not exist.",
12+
"'package.json' does not have a 'typings' field.",
13+
"'package.json' does not have a 'types' field.",
14+
"File '/node_modules/foo/index.ts' does not exist.",
15+
"File '/node_modules/foo/index.tsx' does not exist.",
16+
"File '/node_modules/foo/index.d.ts' does not exist.",
17+
"Directory '/node_modules/@types' does not exist, skipping all lookups in it.",
18+
"Loading module 'foo' from 'node_modules' folder, target file type 'JavaScript'.",
19+
"'package.json' does not have a 'typings' field.",
20+
"'package.json' does not have a 'types' field.",
21+
"'package.json' has 'main' field 'src/index.js' that references '/node_modules/foo/src/index.js'.",
22+
"Found 'package.json' at '/node_modules/foo/package.json'. Package ID is 'foo/src/i.d.ts@1.2.3'.",
23+
"File '/node_modules/foo.js' does not exist.",
24+
"File '/node_modules/foo.jsx' does not exist.",
25+
"'package.json' has 'main' field 'src/index.js' that references '/node_modules/foo/src/index.js'.",
26+
"File '/node_modules/foo/src/index.js' does not exist.",
27+
"Loading module as file / folder, candidate module location '/node_modules/foo/src/index.js', target file type 'JavaScript'.",
28+
"File '/node_modules/foo/src/index.js.js' does not exist.",
29+
"File '/node_modules/foo/src/index.js.jsx' does not exist.",
30+
"File name '/node_modules/foo/src/index.js' has a '.js' extension - stripping it.",
31+
"File '/node_modules/foo/src/index.js' does not exist.",
32+
"File '/node_modules/foo/src/index.jsx' does not exist.",
33+
"Directory '/node_modules/foo/src/index.js' does not exist, skipping all lookups in it.",
34+
"File '/node_modules/foo/index.js' does not exist.",
35+
"File '/node_modules/foo/index.jsx' does not exist.",
36+
"======== Module name 'foo' was not resolved. ========"
37+
]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
=== /node_modules/foo/src/index.d.ts ===
2+
export const x: number;
3+
>x : number
4+
5+
=== /index.ts ===
6+
import { x } from "foo";
7+
>x : any
8+
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
// @traceResolution: true
2+
3+
// @Filename: /node_modules/foo/package.json
4+
{ "name": "foo", "version": "1.2.3", "main": "src/index.js" }
5+
6+
// @Filename: /node_modules/foo/src/index.d.ts
7+
export const x: number;
8+
9+
// @Filename: /index.ts
10+
import { x } from "foo";

0 commit comments

Comments
 (0)