Nest.js 빌드 후 진입점이 이상한 위치에 생기는 이유는?
Nest.js 빌드 후 진입점이 이상한 위치에 생기는 이유는? 레거시 Nest.js 백엔드를 재작성하는 솔루션을 진행하던 중, 특이한 일이 발생했다. 재사용성과 유지보수성을 위해 공용 라이브러리 및 DB 스키마 등을 별도의 GitHub Private Packages로 분리해두고 있었는데, 그러던 중 갑자기 Nest.js 백엔드 빌드가 안 되는 문제가 발생한 것이다. 처음에는 Error: Cannot find module '[CENSORED]/dist/admin' 같은 에러가 떴다. 문제는 소비측 프로젝트와 라이브러리 패키지 프로젝트 둘 다에서 package.json, tsconfig.json, nest-cli.json 등 빌드에 관련된 파일을 하나도 건드리지 않았다는 것이다. 첫 번째 시도: nest start 진입점 변경 시간에 쫓기는 상황이라, 급하게 dist/ 디렉터리 구조를 파악한 뒤 소스 루트를 통째로 옮겨보려고 했다. 그런데 여기서 또 특이한 점이 있었는데, 디렉터리 구조가 평탄화된 상태가 아니라 재귀적인 구조로 바뀌어 있었다. 예를 들어, 이전에는 빌드하면 다음과 같은 디렉터리 구조가 나타났다. proj - dist - main.ts - .. . 그런데 지금은 아래와 같이 변경되어 있었다. proj - dist - lib - [ 라이브러리 프로젝트명 ] - src - .. . - [ 프로젝트명 ] - src - main.ts - .. . 뭔가 괴상하다는 느낌은 있었지만, 시간이 없어서 npm 스크립트에서 nest start 부분의 진입점을 변경해 시작해보려 했다. 당연히 문제가 발생했다. 문제 발생: This is likely not portable... 문제는 바로 아래와 같은 에러였다. src / decorators / public . decorator . ts :...