작성
·
114
0
cli 통해서 db생성을 하면 migration 테이블이 생기지 않아서 오류를 들여다 봤더니 아래와 같은 오류가 생겼습니다.
ERROR
Decorating class property failed. Please ensure that transform-class-properties is enabled and runs after the decorators transform.
데코레이터를 적용하는 과정에서의 이슈로 보이는데 수업 과정을 이수하는 시점까지 별다른 문제나 별개의 코드를 작성하지 않았기에 의문점이 있는 상태입니다.
오류가 발생하는 구간은 아래 코드와 같습니다.
at _initializerWarningHelper (C:/Users/user/Desktop/Study/nestjsbook/src/entities/Mentions.ts:12:1005)
at Mentions.<instance_members_initializer> (C:/Users/user/Desktop/Study/nestjsbook/src/entities/Mentions.ts:61:291)
at new Mentions (C:/Users/user/Desktop/Study/nestjsbook/src/entities/Mentions.ts:61:270)
at EntityMetadata.create (node_modules\src\metadata\EntityMetadata.ts:568:23)
at EntityMetadataValidator.validate (node_modules\src\metadata-builder\EntityMetadataValidator.ts:211:47)
at node_modules\src\metadata-builder\EntityMetadataValidator.ts:43:18
at Array.forEach (<anonymous>)
at EntityMetadataValidator.validateMany (node_modules\src\metadata-builder\EntityMetadataValidator.ts:42:25)
at DataSource.buildMetadatas (node_modules\src\data-source\DataSource.ts:730:33)
at processTicksAndRejections (node:internal/process/task_queues:95:5)
Mentions만에 문제인가 싶어서 Entities를 제거하고 다른 특정 하나(Users)의 Entity만 포함시켜서 실행했을 때도 동일한 오류를 뱉고 있어요.
tsconfig가 컴파일될 때, 제 때 동작이 안되는가 싶어 바벨을 설치해서 플러그인을 주입해도 동일한 현상이 발생되네요 ㅠㅠ 물론 tsconfig에 데코레이터 관련 옵션이 true이긴 합니다. emitDecoratorMetadata: true
experimentalDecorators : true
script
"db:create": "ts-node ./node_modules/typeorm-extension/bin/cli.cjs db:create -d ./dataSource.ts",
"db:drop": "ts-node ./node_modules/typeorm-extension/bin/cli.cjs db:drop -d ./dataSource.ts",
참고로 db:drop시에는 오류가 없이 잘 동작합니다.
답변 2
0
안녕하세요, 인프런 AI 인턴입니다. education mmax님,
제공해주신 정보를 토대로 살펴본 결과, 발생하고 있는 오류는 주로 TypeScript 데코레이터를 사용하는 환경에서 발생할 수 있는 문제입니다. 특히, 데코레이터가 제대로 적용되지 않으면 이러한 문제가 발생할 수 있습니다. 이 에러는 바벨 환경에서 데코레이터를 사용할 때 설정이 부족하거나 잘못된 경우에 발생할 수 있습니다.
다음은 일반적으로 이러한 문제를 해결하기 위해 점검할 수 있는 사항입니다:
tsconfig.json 파일 설정 확인:
experimentalDecorators
: trueemitDecoratorMetadata
: truebabel 설정 확인:
@babel/plugin-proposal-decorators
와 @babel/plugin-proposal-class-properties
플러그인이 필요합니다.babel
속성)에서 설정이 적용되고 있는지 확인하세요.데코레이터 사용하는 방식 점검:
엔티티 파일의 의존성 문제 확인:
이전 빌드 남아있을 가능성:
dist
디렉토리를 삭제하고 다시 빌드해보세요.혹시 위 방법으로도 해결이 되지 않으면, 강의에서 제공된 코드와 본인의 코드를 비교하거나, 해당 강좌 내 다른 수강생의 유사 질문을 검토해보는 것도 좋은 방법입니다. 비슷한 상황에 대한 논의가 있을 수 있으니 확인해 보세요.
유사한 문제를 해결하며 자세한 도움을 드린 두 질문을 참고해주세요:
- DB 생성시 Error: Cannot find module ‘./index.js가 계속 뜨는데 뭐가 문제인가요??
- typeorm을 통해 db 생성을 하려고 하는데 에러가 발생합니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
package.json 전달 드립니다 !