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?
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
.
The error "Could not resolve the path with the extensions '. ts', '. tsx'" occurs when we incorrectly use the tsc command. To solve the error, make sure to only pass valid flags to tsc , e.g. tsc --project tsconfig.
How TypeScript resolves modules. TypeScript will mimic the Node. js run-time resolution strategy in order to locate definition files for modules at compile-time. To accomplish this, TypeScript overlays the TypeScript source file extensions ( .
To be able to use absolute paths in TypeScript we can set the baseUrl property in the tsconfig. json file. With this, we define src as our root directory (for module resolution).
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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With