tsconfig.json 의 문제점
baseUrl 설정 후 paths 설정한 경우 ts-node 나 ts-node-dev 환경에서 tsconfig.json 대로 실행이 가능하지만, tsc 빌드 후 dist 에서는 모듈을 찾지 못하는 경우가 발생함
- 실제 traspiled 된 JavaScript 파일들을 확인해보면
src 등, paths 설정한 그대로 유지되고 있음. 즉, tsc 는 모듈 경로를 해석해서 모듈 경로 위치를 바꿔주지 않음
Module-alias로 해결
yarn add -D module-alias
libs 폴더를 alias로 사용할 경우 src 폴더 아래에 다음과 같이 실제 경로를 적어 준다.
import moduleAliases from "module-alias";
import path from "path";
moduleAliases.addAliases({
libs: path.resolve(__dirname, "./libs"),
});
moduleAliases.tsmoduleAliases.ts 파일을 만든 후, 엔트리에는 아래와 같이 모듈을 최상단에 등록해준다. 그리고 위에서 만든 모듈 경로 지정도 해준다.
import "module-alias/register";
import "./moduleAliases";
index.ts