7

I have a project that written in Typescript on NodeJS. I am using relative path for my modules to import another. But this usage is getting dirty while project is growing. Because of that I want to convert relative paths to absolute path.

Here is my project folder structure:

src
├── controllers
├── repositories
├── services
│   ├── user.service.ts
|── tsconfig.json

I want to use import another module like below.

import userServices from "src/services/user.service";

tsconfig.json

"moduleResolution": "node",
"baseUrl": ".",
"paths": {
  "*": ["src/*"]
}

Above configurations is not working on my workspace.

Could you help me about that?

2 Answers 2

2

There is a TypeScript feature that allows this.

You can modify your src/tsconfig.json file to enable this, under compilerOptions, add the following:

{
  "compilerOptions": {
    // ...
    "paths": {
      "*": [
        "./*",
        "app/*",
        "../node_modules/*"
      ]
    }
}

You can obviously change the pattern key and values as needed. You add or remove folders, you can change the order, etc.

You can also choose a prefix instead of just * (especially if it cases problems), you can use something like ~/*, and your imports will then be all from '~/shared/sample' etc.

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

Comments

1

Add this in your tsconfig. Change the path as required by you

{
  "compilerOptions": {
    "baseUrl": "./src"
  }
}

2 Comments

It is not working with "baseUrl": "./" and "baseUrl": "./src".
I guess this will fail at compile time.

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.