[NestJS] Can't find module 'entity' from 'service.ts' 에러Node.js2022. 8. 12. 00:15
Table of Contents
NestJS에서 엔티티 위치를 찾을 수 없다는 말입니다.
주로 entity를 찾을 수 없다고 나오지만 이는 "경로 지정이 잘못되었을 때" 나오는 에러입니다.
에러 발생 포인트:
레퍼지토리를 연결하여 CRUD 메소드를 만든 후(Entity 연동 후), Test를 돌려보니 에러가 남.
에러 원인:
tsconfig.json과 pakage.json의 모듈 네임 매퍼가 같지 않음.
tsconfig.json
"jest": {
"moduleDirectories": [
"node_modules",
"src"
],
"moduleFileExtensions": [
"js",
"json",
"ts"
],
"roots": ["<rootDir>","src"],
"testRegex": ".*\\.spec\\.ts$",
"transform": {
"^.+\\.(t|j)s$": "ts-jest"
},
"collectCoverageFrom": [
"**/*.(t|j)s"
],
"coverageDirectory": "../coverage",
"testEnvironment": "node",
"moduleNameMapper": {
"^src/(.*)$": "<rootDir>/src/$1",
"^@app/(.*)$": "<rootDir>/src/app/$1",
"@domain/(.*)$": "<rootDir>/src/domain/$1",
"@infrastructure/(.*)$": "<rootDir>/src/infrastructure/$1"
}
여기서 우리는 마지막에 있는 "moduleNameMapper"에 집중해야 합니다.
모듈 네임 매퍼란 파일 경로를 줄여 사용할 수 있도록 설정하는 기능입니다.
예시
@파일 주소
import { InjectRepository } from '@nestjs/typeorm';
import { CreateEquipmentCoreData } from '@app/equipment/equipment-core/commands/create-equipment-core.data';
import { UpdateEquipmentCoreData } from '@app/equipment/equipment-core/commands/update-equipment-core.data';
import { EquipmentCoreResponse } from '@app/equipment/equipment-core/dtos/equipment-core.response';
import { Equipment } from '@domain/equipment/entities/equipment.entity';
이는 tsconfig.json과 pakage.json의 경로를 맞춰주어야합니다.
tsconfig.json
"jest": {
"moduleNameMapper": {
"^src/(.*)$": "<rootDir>/src/$1",
"^@app/(.*)$": "<rootDir>/src/app/$1",
"@domain/(.*)$": "<rootDir>/src/domain/$1",
"@infrastructure/(.*)$": "<rootDir>/src/infrastructure/$1"
}
}
tsconfig.json
"compilerOptions": {
"paths": {
"@src/*": ["server/src/*"],
"@app/*": ["src/app/*"],
"@domain/*": ["src/domain/*"],
"@infrastructure/*": ["src/infrastructure/*"],
},
}
tsconfig.ts는 정규식을 쓰고, 프로젝트 파일의 경로는 설계자마다 다르니 위를 참고하여 구현해주세요!
참고 레퍼런스
https://jestjs.io/docs/configuration#modulenamemapper-objectstring-string--arraystring
https://velog.io/@flobeeee/nestJS-cannot-find-module-when-test
'Node.js' 카테고리의 다른 글
[NestJS] 에서 puppeteer 사용하기 (0) | 2022.10.22 |
---|---|
[NestJS] Swagger 바디 타입 여러개 명시하기 (0) | 2022.10.17 |
[NestJS] e2e테스트 Jest 테스트 시 DB 초기화하는 법 (0) | 2022.10.07 |
NestJS + Flutter 카카오 OAuth 로그인 구현하기 (0) | 2022.09.24 |
[NestJS] EntityMetadataNotFound Error: No metadata for * was found. (0) | 2022.08.12 |
@임채성 :: 푸르고 개발 블로그
글 내용 중 잘못되거나 이해되지 않는 부분은 댓글을 달아주세요! 감사합니다! 문의: puleugo@gmail.com