Merge pull request #13024 from Microsoft/package_json_unsupported_extension

Skip files from package.json "main" or "types" if they have an unsupported extension.
This commit is contained in:
Mohamed Hegazy
2016-12-20 15:44:37 -08:00
committed by GitHub
12 changed files with 169 additions and 16 deletions

View File

@@ -0,0 +1,17 @@
//// [tests/cases/compiler/moduleResolutionWithExtensions_unexpected.ts] ////
//// [normalize.css]
// This tests that a package.json "main" with an unexpected extension is ignored.
This file is not read.
//// [package.json]
{ "main": "normalize.css" }
//// [a.ts]
import "normalize.css";
//// [a.js]
"use strict";
require("normalize.css");

View File

@@ -0,0 +1,4 @@
=== /a.ts ===
import "normalize.css";
No type information for this code.
No type information for this code.

View File

@@ -0,0 +1,29 @@
[
"======== Resolving module 'normalize.css' from '/a.ts'. ========",
"Module resolution kind is not specified, using 'NodeJs'.",
"Loading module 'normalize.css' from 'node_modules' folder.",
"File '/node_modules/normalize.css.ts' does not exist.",
"File '/node_modules/normalize.css.tsx' does not exist.",
"File '/node_modules/normalize.css.d.ts' does not exist.",
"Found 'package.json' at '/node_modules/normalize.css/package.json'.",
"'package.json' does not have a 'types' or 'main' field.",
"File '/node_modules/normalize.css/index.ts' does not exist.",
"File '/node_modules/normalize.css/index.tsx' does not exist.",
"File '/node_modules/normalize.css/index.d.ts' does not exist.",
"File '/node_modules/@types/normalize.css.d.ts' does not exist.",
"File '/node_modules/@types/normalize.css/package.json' does not exist.",
"File '/node_modules/@types/normalize.css/index.d.ts' does not exist.",
"Loading module 'normalize.css' from 'node_modules' folder.",
"File '/node_modules/normalize.css.js' does not exist.",
"File '/node_modules/normalize.css.jsx' does not exist.",
"Found 'package.json' at '/node_modules/normalize.css/package.json'.",
"No types specified in 'package.json', so returning 'main' value of 'normalize.css'",
"File '/node_modules/normalize.css/normalize.css' exist - use it as a name resolution result.",
"File '/node_modules/normalize.css/normalize.css' has an unsupported extension, so skipping it.",
"File '/node_modules/normalize.css/normalize.css.ts' does not exist.",
"File '/node_modules/normalize.css/normalize.css.tsx' does not exist.",
"File '/node_modules/normalize.css/normalize.css.d.ts' does not exist.",
"File '/node_modules/normalize.css/index.js' does not exist.",
"File '/node_modules/normalize.css/index.jsx' does not exist.",
"======== Module name 'normalize.css' was not resolved. ========"
]

View File

@@ -0,0 +1,4 @@
=== /a.ts ===
import "normalize.css";
No type information for this code.
No type information for this code.

View File

@@ -0,0 +1,17 @@
//// [tests/cases/compiler/moduleResolutionWithExtensions_unexpected2.ts] ////
//// [foo.js]
// This tests that a package.json "types" with an unexpected extension is ignored.
This file is not read.
//// [package.json]
{ "types": "foo.js" }
//// [a.ts]
import "foo";
//// [a.js]
"use strict";
require("foo");

View File

@@ -0,0 +1,4 @@
=== /a.ts ===
import "foo";
No type information for this code.
No type information for this code.

View File

@@ -0,0 +1,29 @@
[
"======== Resolving module 'foo' from '/a.ts'. ========",
"Module resolution kind is not specified, using 'NodeJs'.",
"Loading module 'foo' from 'node_modules' folder.",
"File '/node_modules/foo.ts' does not exist.",
"File '/node_modules/foo.tsx' does not exist.",
"File '/node_modules/foo.d.ts' does not exist.",
"Found 'package.json' at '/node_modules/foo/package.json'.",
"'package.json' has 'types' field 'foo.js' that references '/node_modules/foo/foo.js'.",
"File '/node_modules/foo/foo.js' exist - use it as a name resolution result.",
"File '/node_modules/foo/foo.js' has an unsupported extension, so skipping it.",
"File '/node_modules/foo/foo.js.ts' does not exist.",
"File '/node_modules/foo/foo.js.tsx' does not exist.",
"File '/node_modules/foo/foo.js.d.ts' does not exist.",
"File '/node_modules/foo/index.ts' does not exist.",
"File '/node_modules/foo/index.tsx' does not exist.",
"File '/node_modules/foo/index.d.ts' does not exist.",
"File '/node_modules/@types/foo.d.ts' does not exist.",
"File '/node_modules/@types/foo/package.json' does not exist.",
"File '/node_modules/@types/foo/index.d.ts' does not exist.",
"Loading module 'foo' from 'node_modules' folder.",
"File '/node_modules/foo.js' does not exist.",
"File '/node_modules/foo.jsx' does not exist.",
"Found 'package.json' at '/node_modules/foo/package.json'.",
"'package.json' does not have a 'types' or 'main' field.",
"File '/node_modules/foo/index.js' does not exist.",
"File '/node_modules/foo/index.jsx' does not exist.",
"======== Module name 'foo' was not resolved. ========"
]

View File

@@ -0,0 +1,4 @@
=== /a.ts ===
import "foo";
No type information for this code.
No type information for this code.

View File

@@ -0,0 +1,12 @@
// @noImplicitReferences: true
// @traceResolution: true
// This tests that a package.json "main" with an unexpected extension is ignored.
// @Filename: /node_modules/normalize.css/normalize.css
This file is not read.
// @Filename: /node_modules/normalize.css/package.json
{ "main": "normalize.css" }
// @Filename: /a.ts
import "normalize.css";

View File

@@ -0,0 +1,12 @@
// @noImplicitReferences: true
// @traceResolution: true
// This tests that a package.json "types" with an unexpected extension is ignored.
// @Filename: /node_modules/foo/foo.js
This file is not read.
// @Filename: /node_modules/foo/package.json
{ "types": "foo.js" }
// @Filename: /a.ts
import "foo";