📚 Reference
📜 Chapter
package.json
파일에 직접 명시되지 않은 패키지가 코드에서 사용될 때 발생하는 문제이다.node_modules
디렉토리를 플랫하게(flat) 구성하는 경향이 있었다.foo
에 의존하고, foo
는 다시 패키지 bar
에 의존한다고 가정해 보자.foo
-> bar
node_modules
구조에서는 node_modules
최상위에 foo
와 bar
가 모두 설치될 수 있다.your-project/
└── node_modules/
├── foo/ (프로젝트 A의 직접 의존성)
└── bar/ (foo의 의존성이지만 최상위에 설치됨)
your-project
코드에서 bar
를 직접 require('bar')
또는 import 'bar'
해서 사용할 수 있게 된다.bar
는 package.json
에 명시된 직접적인 의존성이 아니다. 즉, "유령처럼 존재하지만 실제로는 정의되지 않은" 의존성인 셈이다.