원래 회사 프로젝트에서 자바스크립트 컴파일러를 babel로 사용하고 있었는데, 속도 개선을 위해 SWC로 변경하였다.
SWC는 Rust라는 언어로 제작되어서 직렬처리를 하는 babel와 다르게 병렬처리가 가능해서 컴파일이 매우 빠르다.
time npm run build
으로 빌드 하면 빌드 속도를 알 수 있다.
Next.js에는 SWC가 내장 되있으므로 적용은 간단하게 할 수 있다.
먼저 .babelrc
파일을 삭제하고 next.config.js
에서 swcMinify: true
를 추가 하면된다.
const nextConfig = {
...
swcMinify: true,
}
설정을 완료하고 시간을 비교한 결과
babel : 27.597s
SWC : 9.922s
로 17.675s 줄일 수 있었다.