@@ -2720,13 +2720,18 @@ namespace ts {
27202720 else {
27212721 const tsExtension = tryExtractTSExtension(moduleReference);
27222722 if (tsExtension) {
2723- const diag = Diagnostics.An_import_path_cannot_end_with_a_0_extension_Consider_importing_1_instead;
2724- let rightPath = removeExtension(moduleReference, tsExtension);
2725- if (compilerOptions.emitExtension) {
2726- // e.g.: Consider importing '{1}.mjs' instead.
2727- rightPath += compilerOptions.emitExtension;
2723+ if (compilerOptions.emitExtension === tsExtension) {
2724+ error(errorNode, moduleNotFoundError, moduleReference);
2725+ }
2726+ else {
2727+ const diag = Diagnostics.An_import_path_cannot_end_with_a_0_extension_Consider_importing_1_instead;
2728+ let rightPath = removeExtension(moduleReference, tsExtension);
2729+ if (compilerOptions.emitExtension) {
2730+ // e.g.: Consider importing '{1}.mjs' instead.
2731+ rightPath += compilerOptions.emitExtension;
2732+ }
2733+ error(errorNode, diag, tsExtension, rightPath);
27282734 }
2729- error(errorNode, diag, tsExtension, rightPath);
27302735 }
27312736 else if (!compilerOptions.resolveJsonModule &&
27322737 fileExtensionIs(moduleReference, Extension.Json) &&
@@ -32567,10 +32572,12 @@ namespace ts {
3256732572 return false;
3256832573 }
3256932574 }
32570- else if (compilerOptions.noImplicitExtensionName) {
32575+ // Skip noImplicitExtensionName check for files in node_modules
32576+ else if (compilerOptions.noImplicitExtensionName && !getSourceFileOfNode(node).fileName.includes("node_modules")) {
3257132577 const extensionLess = removeFileExtension(moduleName.text, compilerOptions);
3257232578 if (extensionLess === moduleName.text) {
3257332579 error(node, Diagnostics.Import_with_an_implicit_extension_name_is_not_allowed_Try_to_import_from_0_1_instead, extensionLess, compilerOptions.emitExtension || ".js");
32580+ return false;
3257432581 }
3257532582 }
3257632583 }
0 commit comments