자주 묻는 질문
Why does my node_modules
folder use disk space if packages are stored in a global store?
pnpm creates hard links from the global store to the project's node_modules
folders. Hard links는 디스크상의 원본 파일이 있는 위치를 가리킵니다. So, for example, if you have foo
in your project as a dependency
and it occupies 1MB of space, then it will look like it occupies 1MB of space in
the project's node_modules
folder and the same amount of space in the global
store. However, that 1MB is the same space on the disk addressed from two
different locations. So in total foo
occupies 1MB, not 2MB.
이 주제에 대해 자세한 내용 (영어):
- Why do hard links seem to take the same space as the originals?
- A thread from the pnpm chat room
- An issue in the pnpm repo
Windows에서 동작할까요?
짧은 답: 네. 긴 답: Windows에서 symbolic link을 다루는 게 아무래도 문제가 되긴 하는데, pnpm은 해결 방법이 있긴 합니다. For Windows, we use junctions instead.
But the nested node_modules
approach is incompatible with Windows?
Early versions of npm had issues because of nesting all node_modules
(see
this issue). 하지만, pnpm은 폴더를 깊이 생성하는 대신, 모든 패키지를 평평하게 저장하고 symbolic link를 사용해 종속성 트리 구조를 만듭니다.