nextjs compiler: babel vs swc
April 06, 2023
- next 12 버전대에서 변경됨
NextJS 12 버전부터 SWC를 Next.js Compiler 로 소개한다.
SWC는 Rust 기반의 컴파일러로 싱글 코어에서 babel 보다 20배, 4 코어에서 babel 보다 70배 빠르다고 소개하고 있다.
babel의 한계점
- 배포 뒤, 개발자들이 babel이 변경한 코드를 이해하기 어려워 할 수있다.
- 코드의 크기가 늘어난다.
- polyfill을 사용해서 babel이 지원해주지 않는 범위까지 변환해주어야 한다.
- 다른 컴파일러보다 시간이 오래 걸린다.
SWC 컴파일러
SWC(Speedy Web Compiler)는 Rust로 작성된 컴파일러이다. 저급 프로그래밍 언어인 Rust로 작성되었기 때문에 컴파일시 매우 빠르게 동작한다. 개발자들은 웹사이트 최적화, 번들링, 컴파일 등 다양한 기능을 위해 SWC를 사용할 수 있다.
SWC의 장점1. 확장성: 개발자들은 라이브러리를 fork 해올 필요 없이 Next JS에 미리 설치된 SWC를 사용할 수 있다.2. WebAssembly: Rust의 WASM(WebAssembly) 지원으로 어떤 종류의 플랫폼에서도 Next JS 개발을 할 수 있다.3. 성능: 다른 컴파일러들보다 훨씬 좋은 성능을 제공한다.4. 커뮤니티 지원: 빠르게 성장하는 커뮤니티를 가지고 있다.
reference
nextjs 12에서 emotion과 함께하는 tailwindcss - call5h5ong님의 블로그 - 인프런 | 커뮤니티