
데브옵스
Nx에서 Bun 더 잘 사용하기: Nx 18 -> 21 마이그레이션
두줄요약
Nx 18에서 Bun을 쓰면 lock file 감지와 파싱 문제로 마이그레이션이 꼬일 수 있었습니다. Bun 1.2.x와 Nx 21.4+로 올려 `bun.lock`을 쓰자 빌드와 CI가 안정화되었습니다.
문제 상황
- Nx 18 환경에서 Bun을 패키지 매니저로 사용 중이었지만
nx migrate가 Yarn을 선택해 실패 - Nx 19 마이그레이션 후에는 webpack 빌드에서
generatePackageJson옵션과bun.lockb조합으로 lock file 파싱 오류 발생
원인 분석
- Nx 18은 Bun을 공식 지원하지 않아 lock file 감지 우선순위에 따라
yarn.lock을 Yarn 설정으로 해석 - 구 버전 Bun의
bun.lockb는 바이너리 형식이라 Nx가 External Node 메타데이터를 해석하지 못하는 경우 존재
해결 방법
- 마이그레이션 시점에
yarn.lock을 임시 제거해 Nx가 Bun 대신 Yarn으로 오인하지 않도록 조정 - Bun 1.2.x와 Nx 21.4+로 업그레이드해
bun.lock기반 인식과 파싱 문제를 해소
