Tree Shaking은 흔들리는 나무의 쓸모없는 잎사귀들이 떨어지는 모습을 따온 용어입니다. 이는 사용하지 않는 자바스크립트 파일을 제거하여 번들 크기를 최소화하는 프로세스를 의미합니다.
Babel 설정 유지: Babel이 ES6 모듈을 CommonJS 모듈로 트랜스파일하지 않도록 유지.
package.json의 sideEffects 설정값 추가:
sideEffects 배열에 모듈 추가:
// package.json
"sideEffects": ["./src/some-side-effectful-file.js", "*.css"]
외부 라이브러리 최적화:
UMD 모듈 패턴을 사용하는 라이브러리에서 필요한 항목만 가져오기.
예: lodash 라이브러리
// Before
import { debounce } from 'lodash';
// After
import debounce from 'lodash/debounce';
TypeScript에서 Enum/Const Enum 대신 UnionType 사용: