import myCode from 'src/folder1/folder2/folder3/folder4/folder5/index

간단한 프로젝트는 상관 없지만, 프로젝트 규모가 커지면 코드에 표현되는 경로가 깔끔하지 않을 수 있음

절대 경로(alias)를 설정

 


첫번째 방법

tsconfig.json

{
  "compilerOptions": {
    ...
    "baseUrl": "./",
    ...
    "paths": {
      "@src/*": [
        "./src/*"
      ],
      "@src/api/*": [
        "./src/api/*"
      ]
    }
  }
}

두번째 방법

tsconfig.paths.json

{
  "compilerOptions": {
    "baseUrl": "./",
    "paths": {
      "@src/*": ["./src/*"],
      "@app/*": ["./src/app/*"],
      "@loader/*": ["./src/loader/*"],
      "@middleware/*": ["./src/middleware/*"]
    }
  }
}

tsconfig.json

{
  "compilerOptions": {
    ...
  },
  "extends": "./tsconfig.paths.json"
}

경로 적용 확인

app.modules.ts 파일 변경

변경 전
import { ApiModule } from './api/api.module';

변경 후
import { ApiModule } from '@src/api/api.module';

혹시 watch 모드로 실행되고 있다면 적용되지 않을 수 있다. 서버를 재실행하여 다시 확인해 보자

 


Jest 테스트를 위한 경로 설정

tsconfig.json 파일 설정으로는 *spec.ts 파일의 경로 alias가 적용이 되지 않는다

package.json

{
    ...
  "jest": {
    ...
    "moduleNameMapper": {
      "^@src/(.*)$": "<rootDir>/$1"
    }
  }
}

jest 테스트 경로 alias가 적용되었다

'JavaScript > NestJS' 카테고리의 다른 글

[NestJS] 환경 변수 (config) 사용하기  (0) 2023.08.20
[NestJS] Logging 하기  (0) 2023.08.19
[NestJS] Jest 테스트하기  (0) 2023.08.17
[NestJS] API 생성하기 (+ CORS)  (0) 2023.08.17
[NestJS] 시작하기  (0) 2023.08.17

+ Recent posts