절대경로 사용하기
- 상대경로로도 import 할 수 있으나, 절대경로를 사용하기 위한 방법
타입스크립트 소스에 반영
- tsconfig.json 파일에 paths 로 지정한다.
- 타입스크립트에서 import 할 때 절대경로를 사용할 수 있게된다.
...
"baseUrl": ".",
"paths" : {
"~/*": ["./*"]
},
...
- import 차이 비교
//import { UserController } from './user.controller'
import { UserController } from '~/src/user/user.controller'
jest 반영
- 테스트코드의 경우 jest 를 이용하므로
package.json
파일을 수정
- ex) '~' 를 사용하고자 하는 경우
package.json
수정
<rootDir>
이 test/
경로이므로 ../
이 추가되는 것에 주의
"jest": {
"moduleFileExtensions": [
"js",
"json",
"ts"
],
"rootDir": "src",
"testRegex": ".*\\.spec\\.ts$",
"transform": {
"^.+\\.(t|j)s$": "ts-jest"
},
"collectCoverageFrom": [
"**/*.(t|j)s"
],
"coverageDirectory": "../coverage",
"testEnvironment": "node",
"moduleNameMapper": {
"^~/(.*)$": "<rootDir>/../$1"
}
}
jest E2E 테스트 반영
- e2e 테스트의 경우 아래와 같이
test/jest-e2e.json
을 바라보기 때문에 해당 파일도 수정한다.
"test:e2e": "jest --config ./test/jest-e2e.json"
test/jest-e2e.json
수정
- 동일하게
moduleNameMapper
를 추가한다.
- 마찬가지로
<rootDir>
이 test/
경로이므로 ../
이 추가되는 것에 주의
"moduleNameMapper": {
"^~/(.*)$": "<rootDir>/../$1"
}
VSCode auto import 반영하기
Preferences > Settings > Import Module Specifier
항목을 non-relative
로 변경한다.
- 위와 같이 변경할 경우
jsconfig.json
, tsconfig.json
에서 정의한 baseUrl
, paths
설정에 근거해 import된다.
reference