728x90
728x90
Phantom Dependency란?팬텀 의존성(Phantom Dependency)은 프로젝트의 package.json 파일에 명시되지 않았지만 빌드 타임이나 런타임에 의존성을 가지게 되는 상황을 의미한다.이 문제는 주로 Node.js의 모듈 평탄화(flattening)로 인해 발생하게 되는데 NPM이나 Yarn이 의존성을 설치할 때, 하위 의존성을 같은 node_modules 폴더에 배치하기 때문에 주로 발생한다.(모듈 평탄화는 중복해서 설치되는 패키지를 줄이기 위해서 설치한 패키지들이 모두 맨 위로 hoisting 되는 것을 의미한다) 😅 쉽게 말해, 우리 코드가 직접적으로 사용하지 않는 패키지에 ‘슬며시’ 의존하고 있는 상태가 팬텀 의존성이다. 예제를 통해서 확인해보면 다음과 같다.{ "d..