diff --git a/src/compiler/moduleSpecifiers.ts b/src/compiler/moduleSpecifiers.ts index 0848679ba9a40..ce2a2336758e9 100644 --- a/src/compiler/moduleSpecifiers.ts +++ b/src/compiler/moduleSpecifiers.ts @@ -174,7 +174,10 @@ namespace ts.moduleSpecifiers { const bundledPkgReference = bundledPackageName ? combinePaths(bundledPackageName, relativeToBaseUrl) : relativeToBaseUrl; const importRelativeToBaseUrl = removeExtensionAndIndexPostFix(bundledPkgReference, ending, compilerOptions); const fromPaths = paths && tryGetModuleNameFromPaths(removeFileExtension(bundledPkgReference), importRelativeToBaseUrl, paths); - const nonRelative = fromPaths === undefined ? importRelativeToBaseUrl : fromPaths; + const nonRelative = fromPaths === undefined && baseUrl !== undefined ? importRelativeToBaseUrl : fromPaths; + if (!nonRelative) { + return relativePath; + } if (relativePreference === RelativePreference.NonRelative) { return nonRelative; diff --git a/tests/cases/fourslash/importNameCodeFix_pathsWithoutBaseUrl.ts b/tests/cases/fourslash/importNameCodeFix_pathsWithoutBaseUrl1.ts similarity index 91% rename from tests/cases/fourslash/importNameCodeFix_pathsWithoutBaseUrl.ts rename to tests/cases/fourslash/importNameCodeFix_pathsWithoutBaseUrl1.ts index d3790c1ab63b0..cfedea7c1bc06 100644 --- a/tests/cases/fourslash/importNameCodeFix_pathsWithoutBaseUrl.ts +++ b/tests/cases/fourslash/importNameCodeFix_pathsWithoutBaseUrl1.ts @@ -5,7 +5,7 @@ //// "compilerOptions": { //// "module": "commonjs", //// "paths": { -//// "@app/*": ["lib/*"] +//// "@app/*": ["./lib/*"] //// } //// } //// } diff --git a/tests/cases/fourslash/importNameCodeFix_pathsWithoutBaseUrl2.ts b/tests/cases/fourslash/importNameCodeFix_pathsWithoutBaseUrl2.ts new file mode 100644 index 0000000000000..5a0a926721ca8 --- /dev/null +++ b/tests/cases/fourslash/importNameCodeFix_pathsWithoutBaseUrl2.ts @@ -0,0 +1,21 @@ +/// + +// @Filename: /packages/test-package-1/tsconfig.json +//// { +//// "compilerOptions": { +//// "module": "commonjs", +//// "paths": { +//// "test-package-2/*": ["../test-package-2/src/*"] +//// } +//// } +//// } + +// @Filename: /packages/test-package-1/src/common/logging.ts +//// export class Logger {}; + +// @Filename: /packages/test-package-1/src/something/index.ts +//// Logger/**/ + + +goTo.marker(""); +verify.importFixAtPosition([`import { Logger } from "../common/logging";\n\nLogger`]);