tl;dr
- bun install 확실히 빠름 압도적으로 빠름
- npm install → 8s, bun install → 572ms
- 그런데 drop-in-replacement 는 아직 한참먼듯
---
그나마 패키지 적은 레포중 하나의 런타임을 bun 으로 바꿔보는 식으로 poc 진행
로컬에 bun 설치후 기존프로젝트에 bun init 으로 세팅, 그리고 tsconfig 의 compilerOption 도 bun recommended 로 함
컨테이너 배포전 로컬런타임에서 bun app.ts 로 실행해봄
그러자 에러발생
설치된 패키지 중 하나인 typeorm 에서 tsconfig 의 compilerOption 의 emitDecoratorMeta: true 가 되어잇어야하고, 또 column name 이 없다면서 실행이 안됨
일단 해당 compilerOption field 넣어주고, column name 도 명시적으로 넣어줌 (원랜 명시적으로 넣지않으면 orm 이 알아서 만들어주는데 왤가)
이제 다른 에러들이 다 사라지고 db host 가 없어서 연결이 안된다는 오류만 남아서 컨테이너에 넣고 돌려보기로 함
Dockerfile 구성은 사용하던 node.js slim 이미지 대신 oven/bun 의 1.0.0 버전 이미지를 이용햇고, bun install --production 으로 devDependency 없이 설치 진행해서 컨테이너 구동성공
그런데 분명히 존재하는 데이터베이스 이름을 갖고오질 못하더라
해당 이름의 데이터베이스가 또다른 postgresql container 에 잇고, 같은 network 내에 존재하는 상황이라 nodejs runtime 을 사용햇던 시절엔 잘 되엇음에도 불구하고...
---
bun install 로 dependency 설치하는 속도는 매우 빠르긴하지만 drop-in-replacement 를 표방하기엔 아직 갈길이 멀다
그럼에도 불구하고 기대되는 런타임인것도 맞음
그래서 지금 한껏 관심이 몰린 지금 이 시점에서
얼마만큼의 개선을 이뤄내느냐가 정말 중요할듯
오 이런 리뷰 좋다 추천 박았다.
npm 설치속도 왜 그렇게 쳐느린거야?
아직 http2가 지원안되서 grpc도 못쓰더라. - dc App