Community

Migrating from ts-node to Bun

작성자가 콘솔 앱을 ts-node에서 대체 JavaScript 런타임인 Bun으로 마이그레이션한 경험에 대해 설명합니다. 저자는 한동안 대체 자바스크립트 런타임을 탐색하는 데 관심이 있었지만 npm 호환성이 필요해 망설였습니다. 하지만 Bun이 이 요구 사항을 충족한다는 사실을 알게 되어 사용해 보기로 결정했습니다. 저자는 우분투 머신에 Bun을 설치하는 과정을 설명하는 것으로 시작합니다. Bun을 설치하는 데 사용된 명령어를 제공하고 출력에 들여쓰기가 일관되지 않다는 점에 주목했습니다. 하지만 이 문제를 해결하기 위해 풀 리퀘스트를 제출했습니다. Bun을 설치한 후, 작성자는 ts-node에서 앱을 포팅할 준비가 되었습니다. 그런 다음 작성자는 ts-node에서 Bun으로 의존성을 포팅하는 프로세스를 설명합니다. 먼저 Node.js 런타임에 대한 TypeScript 정의가 포함된 `@types/node` 패키지를 제거하는 것으로 시작합니다. Bun을 사용하기로 했으므로 더 이상 이 패키지가 필요하지 않습니다. 대신, 프로젝트에 Bun 런타임 유형을 제공하는 `bun/types` 패키지를 추가합니다. 또한 작성자는 `tsconfig.json` 파일을 변경하여 Bun 문서에 맞게 조정합니다. 다음으로, 작성자는 사용 중인 Bun 버전에서 지원되지 않는 `fs.promises` API와 관련된 오류를 발견합니다. 그들은 `fs.promises.readFile`과 `fs.promises.writeFile`을 Bun에 상응하는 것으로 대체하지만, `fs.promises.readdir`에 대한 Bun에 상응하는 것을 찾지 못합니다. 대신 동기식 Node.js API를 사용합니다. 이러한 변경을 통해 작성자는 오류 없이 앱을 실행할 수 있습니다. 그런 다음 작성자는 ts-node와 비교하여 Bun으로 앱을 실행한 경험에 대해 설명합니다. 저자는 자신의 사용 사례에서 Bun이 ts-node보다 약 50% 더 빠르다는 것을 발견했습니다. 저자는 이러한 성능 차이는 Node.js가 Bun보다 시작 속도가 느리기 때문일 가능성이 높다고 언급합니다. 결론적으로 작성자는 ts-node에서 Bun으로의 마이그레이션 과정이 쉬웠으며 향후 Bun 사용에 대해 긍정적으로 평가했습니다. 이 문서는 대체 자바스크립트 런타임을 탐색하거나 ts-node에서 Bun으로 마이그레이션하는 데 관심이 있는 모든 분께 유용한 가이드를 제공합니다.

알림

알림이 없습니다