@@ -3051,13 +3051,18 @@ namespace ts {
30513051 else {
30523052 const tsExtension = tryExtractTSExtension(moduleReference);
30533053 if (tsExtension) {
3054- const diag = Diagnostics.An_import_path_cannot_end_with_a_0_extension_Consider_importing_1_instead;
3055- let rightPath = removeExtension(moduleReference, tsExtension);
3056- if (compilerOptions.emitExtension) {
3057- // e.g.: Consider importing '{1}.mjs' instead.
3058- rightPath += compilerOptions.emitExtension;
3054+ if (compilerOptions.emitExtension === tsExtension) {
3055+ error(errorNode, moduleNotFoundError, moduleReference);
3056+ }
3057+ else {
3058+ const diag = Diagnostics.An_import_path_cannot_end_with_a_0_extension_Consider_importing_1_instead;
3059+ let rightPath = removeExtension(moduleReference, tsExtension);
3060+ if (compilerOptions.emitExtension) {
3061+ // e.g.: Consider importing '{1}.mjs' instead.
3062+ rightPath += compilerOptions.emitExtension;
3063+ }
3064+ error(errorNode, diag, tsExtension, rightPath);
30593065 }
3060- error(errorNode, diag, tsExtension, rightPath);
30613066 }
30623067 else if (!compilerOptions.resolveJsonModule &&
30633068 fileExtensionIs(moduleReference, Extension.Json) &&
@@ -33664,10 +33669,12 @@ namespace ts {
3366433669 return false;
3366533670 }
3366633671 }
33667- else if (compilerOptions.noImplicitExtensionName) {
33672+ // Skip noImplicitExtensionName check for files in node_modules
33673+ else if (compilerOptions.noImplicitExtensionName && !getSourceFileOfNode(node).fileName.includes("node_modules")) {
3366833674 const extensionLess = removeFileExtension(moduleName.text, compilerOptions);
3366933675 if (extensionLess === moduleName.text) {
3367033676 error(node, Diagnostics.Import_with_an_implicit_extension_name_is_not_allowed_Try_to_import_from_0_1_instead, extensionLess, compilerOptions.emitExtension || ".js");
33677+ return false;
3367133678 }
3367233679 }
3367333680 }
0 commit comments