피드로 돌아가기
Dev.toFrontend
원문 읽기
Flat Dependency 구조로 인한 수십 GB 규모의 node_modules 저장 공간 낭비 해결
node_modules is Why Your Mac is Full: Find and Delete All of Them
AI 요약
Context
npm v3 이후 도입된 Flat Dependency Tree 구조로 인해 모든 Transitive Dependency가 최상위 node_modules에 Hoisting 되는 설계적 특성 존재. 프로젝트별 격리된 저장 방식 및 중복 패키지 설치로 인해 개발 환경 내 저장 공간 낭비가 심화되는 한계점 발생.
Technical Solution
- Lockfile 기반의 완전한 재생성 가능성을 활용한 node_modules 캐시 성격 정의
- find 명령어를 통한 재귀적 디렉토리 탐색 및 du/awk 조합의 정량적 사용량 분석 로직 구현
- rm -rf 명령어를 활용하여 소스 코드와 분리된 의존성 디렉토리의 일괄 제거 프로세스 수행
- Native Binaries 및 Platform-specific Code 등 고용량 바이너리 파일의 정기적 정리 필요성 식별
- Symlink Loop 방지 및 Canonical Path 추적을 통한 중복 카운팅 제거 설계
- build cache(.next, dist 등)를 포함한 일시적 생성 파일의 통합 관리 체계 구축
실천 포인트
- 프로젝트 미사용 기간(예: 30일) 기준 node_modules 자동 삭제 스크립트 검토 - pnpm과 같은 Content-addressable storage 기반 패키지 매니저 도입을 통한 중복 제거 고려 - .gitignore 설정을 통한 build output(.next, dist)의 철저한 제외 및 주기적 정리 - npm cache clean --force 등 패키지 매니저 전역 캐시의 정기적 Pruning 수행