"start": "npx prisma generate --schema=./prisma/schema.prisma && nodemon --exec ts-node index.ts",
원래 해당 스크립트가 먹히질않아서 계속 다른방법으로 시도하다가
아래와 같이 source-map-support 를 이용해서 js파일을 실행시키는 방법을 시도했었는데
해당 방법도 문제가 있었는데 왜인지 로그가 하나도 찍히질 않아서 결국 처음부터 다시 해보자 하고 ts-node를 사용하니깐 또 갑자기 되버리는.... 아마도 tsconfig 설정이나 다른데서 알게모르게 실수가 있었던거같은데 여러분들은 한방에 되시길...
하루종일 삽질하다가 허무하게 해결 되어버릴때 너무 짜릿해
아래의 글은 아주매우 높은확률로 똥글이니 저런 옵션도 있구나 하고 뒤로가기를 눌러주세요
틈틈히 시간날때마다 타입스크립트로 보일러플레이트를 만들어보고 있었다.
처음에 타입을 넣어주는게 낮설고 번거로웠지만 금방 적응되었는데 예상치 못한데서 애를 먹었다.
초기 세팅에서 개발환경을 설정하고 서버가 정상적으로 켜지는걸 확인만 했었는데
어느정도 코드를 작성하고 통신테스트를하는데 클라이언트가 경로를 못찾는 이슈가 발생했다
스크립트였었던것
"scripts": {
"start": "npx prisma generate --schema=./prisma/schema.prisma && nodemon --exec ts-node ./index.ts",
"start:prod": "node ./dist/index.js",
"build": "npx prisma generate --schema=./prisma/schema.prisma && tsc",
"swagger-autogen": "node ./src/config/swagger.ts"
}
개발환경과 배포환경을 분리하고 개발환경에선 별도의 빌드 없이 ts코드를 바로 읽을 수 있게 거라생각했지만 했는데 어째서인지 서버는 정상적으로 켜지고 앤드포인트나 다른 코드들도 정상인데 요청이 길을 못찾고있었다.
혹시나 하고 빌드된 js로 시도하니깐 정상적으로 요청과 응답을 주고받고있었다.
source-map-support
그렇게 기약없는 삽질을 계속되었고 스크립트도 변경해보고 ts설정도 이래저래 변경해봤지만 소용이 없었다. 외않되....
그렇다고 nodemon 없이 개발하자니 너무 불편하고 js로 빌드된 환경에서 디버깅을하자니 ts로 확인을 할 수 없는것도 문제였는데 gpt를 묶어놓고 고문하니깐 ts의 source-map이라는 옵션을 사용하면 js로 빌드된 코드를 디버깅할때도 ts로 확인할 수 있는 현재 내 상황에 갓벽한 모듈이 있었다
스크립트 수정
"scripts": {
"start": "npx prisma generate --schema=./prisma/schema.prisma && tsc && nodemon -r source-map-support/register ./dist/index.js",
"build": "npx prisma generate --schema=./prisma/schema.prisma && tsc && babel src --out-dir dist --extensions '.ts,.tsx'",
"start:prod": "node ./dist/index.js",
"swagger-autogen": "node ./src/config/swagger.ts"
}
이렇게되면 서버를 실행시킬 때 자동으로 js로 빌드되고, 빌드된 서버코드를 nodemon으로 실행시키고 에러를 ts로 확인할 수 있게 된다
근데 이러면 프로덕션환경이랑 분리한게 의미가 없..