@@ -2720,13 +2720,18 @@ namespace ts {
2720
2720
else {
2721
2721
const tsExtension = tryExtractTSExtension(moduleReference);
2722
2722
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);
2728
2734
}
2729
- error(errorNode, diag, tsExtension, rightPath);
2730
2735
}
2731
2736
else if (!compilerOptions.resolveJsonModule &&
2732
2737
fileExtensionIs(moduleReference, Extension.Json) &&
@@ -32567,10 +32572,12 @@ namespace ts {
32567
32572
return false;
32568
32573
}
32569
32574
}
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")) {
32571
32577
const extensionLess = removeFileExtension(moduleName.text, compilerOptions);
32572
32578
if (extensionLess === moduleName.text) {
32573
32579
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;
32574
32581
}
32575
32582
}
32576
32583
}
0 commit comments