특정 컴포넌트나 파일을 import할 시 경로의 depth가 깊어지면 깊어질수록 import하려는 파일의 위치에 따라 상대경로가 상당히 길어질 수 있다.
이런 식으로 상대경로가 길어지면 import할 파일을 찾기위한 수고가 커지고 가독성 면에서도 좋지 않다.
이런 경우 tsconfig.json
또는 jsconfig.json
의 설정을 통해 절대경로를 설정할 수 있다.
tsconfig.json
이란?
typscript에 대한 설정을 할 수 있는 파일이며 javascript로 이루어진 레포지토리라면 jsconfig.json
을 사용한다.
해당 레포지토리가 Typescript를 사용하고 있다면 루트 디렉토리에 tsconfig.json
이 존재해야며 tsc명령어를 통한 컴파일시 로드한다.
컴파일러에 대한 옵션 설정과 더불어 다양한 기능을 제공한다.
절대경로 설정하기
tsconifg.json에서 compilerOptions 옵션의 baseUrl과 paths를 이용해서 절대경로를 설정한다.
baseUrl의 경우 paths를 설정하기 위해서는 반드시 설정해야하는 옵션이다.
paths의 경우 key-value쌍으로 이루어진 객체이며 절대경로를 정의하고자 하는 경로의 이름을 key에 입력하며 baseUrl을 기준으로 상대적인 경로를 value에 입력한다.
위와 같은 paths를 지정한다면 실제로 루트 디렉토리를 기준으로한 구조는 다음과 같다.
실제로 적용된 예시를 보자
특정 파일뿐만 아니라 모듈도 절대경로로 지정이 가능하다.
추가
절대경로를 추가하는 paths가 늘어나면tsconfig.json
의 extends옵션을 이용해서 따로 빼놓는 것도 가능하다.
기본 config 파일을 읽어온 후 extends에 지정한 파일에 의해 오버라이딩(overridden) 된다. include나 exclude에 정의한 파일의 경우 기본 config 파일을 덮어쓴다.(overwrite)
extends 옵션은 스트링값으로만 받는다. 여러 설정 파일을 extend하고 싶다면 줄줄이 이어받는 구조를 만들어야한다.
위에 설정한 파일을 따로 만들어 저장해둔다. 파일명은 어떤식으로 지어도 상관없으며, 어느 디렉토리에 속해도 된다. json형식이면 된다.
tsconfig.path.json
을 루트 디렉토리에 만들어 사용할 수도 있다.
tsconfig.json
에 extends옵션을 추가한 뒤 확장하고자하는 json을 파일을 tsconifg.json
을 기준으로한 상대경로로 입력해준다.
참고