7

Here's the Github MCVE showing an issue. npm run compile shows the error.

I'm trying to do this:

import {Todo} from '@test';

But it's not resolving.

src/index.ts:1:20 - error TS2307: Cannot find module '@test'.

I have paths in tsconfig.json.

  "baseUrl": "./",                          /* Base directory to resolve non-absolute module names. */
  "paths": {
    "@fs/": ["src/"], 
    "@test/": ["test/"]
  },                                        /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */

Thoughts?

Github Typescript Issue

I opened a bug report for this here since per some of the comments it should have worked.

Typescript note that I updated the github repository removing the glob patterns and slashes in @test.

4
  • In the docs under path mapping they have set the base url to just . Commented Mar 27, 2019 at 18:18
  • @pmkro . and ./ resolve to the same directory, the contrary would be a TS implementation bug Commented Mar 27, 2019 at 18:20
  • @NinoFiliu I figured as much Commented Mar 27, 2019 at 18:21
  • For those who are not using a bundler (CRA, webpack, Nextjs, etc) and are stuck with this problem, maybe this will help you: stackoverflow.com/a/73346203/8221175 Commented Aug 13, 2022 at 17:07

2 Answers 2

8

Don't adjust the VS Code Import Module Specifier settings (as per some answers floating around). And don't remove the glob patterns. In fact add some more in:

 "baseUrl": "./",
  "paths": {
    "@fs/*": ["src/*"], 
    "@test/*": ["test/*"]
  },

Notice that the glob is in the key AND the value. This is hilariously hard to spot sometimes.

Where the target is a file, the glob should be omitted from key and value.

Sign up to request clarification or add additional context in comments.

1 Comment

You sir, are brilliant.
2

Remove the glob patterns:

"paths": {
  "@test": "./test"
}

Your solution is weirdly supposed to work, but the docs use no globs and there have been some reported intellisense bugs when using globs.

5 Comments

Well, yes, and also this article says the same. But on my machine, removing the glob pattern made the whole thing work as expected, and adding them back provoked a bug. That's enough to be an answer for me.
IMO there is definitely a bug in somewhere between my IDE and TS' implementation, but still, if a fix works for someone, it has value as an answer
I tried removing the glob pattern and it still does not resolve for me. I pushed the changes to the github repository.
Also the issue is separate from VSCode. I'm running npm run compile configured in the package.json and the src/index.ts:1:20 - error TS2307: Cannot find module '@test' ` is still logged.
You didn't say I wrote ;) it's "@test": ["./test"], not "@test/": ["./test/"]. No slash.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.