ES 모듈을 사용
코드가 사이드 이펙트가 없는 순수 함수 형태로 작성
만약 모듈 내부에서 실행되는 코드가 전역 상태를 변경하거나 예측할 수 없는 동작을 한다면 번들러는 해당 코드가 제거 되어도 안전하지 확신할 수 없기 때문에 트리 쉐이킹이 적용되지 않을 수 있음
→ 이를 해결하기 위해 package.json
에 “sideEffects” : false
를 설정하면 해당 패키지가 사이드 이펙트가 없을을 명시하여 보다 적극적으로 최적화 가능
도구 | 트리 쉐이킹 지원 여부 |
---|---|
Webpack (v2 이상) | 지원 (mode: 'production' 필수) |
Rollup | 가장 적극적이고 효율적인 트리 쉐이킹 |
ESBuild, Vite | 빠르고 기본적으로 지원 |
mode: 'production'
설정mode: 'production'
으로 설정하면 자동으로 최적화 옵션들을 활성화(트리 쉐이킹 포함되어 있음)package.json
에 "sideEffects": false
추가sideEffects
플래그를 설정bundle analyzer
도구를 사용하여 시각적을 확인 가능