Loading...
잠시만 기다려 주세요.
npm은 Node.js를 위한 핵심 패키지 매니저로, package.json에 정의된 의존성을 바탕으로 npm registry에서 패키지를 가져와 node_modules에 저장합니다. 📦npm install 과정은 arborist (전체 과정 책임)와 pacote (메타데이터 및 파일 가져오기) 모듈의 협업으로 이루어집니다. 🧠buildIdealTree 단계에서는 package.json을 파싱하고 pacote.manifest()를 재귀적으로 호출하여 메타데이터를 가져와 이상적인 논리적 의존성 트리를 구성합니다. 🌳reify 단계에서는 pacote.tarball()로 실제 패키지 코드(TGZ 파일)를 가져오고 extract()로 압축을 풀어 node_modules 폴더에 물리적으로 배치합니다. 🏗️writeLockFile 단계에서 package-lock.json을 생성하여 팀원 간 재현 가능한 빌드 환경을 제공하며, npm ci는 이 파일을 기반으로 빠르고 일관된 설치를 보장합니다. 🔒npm의 한계점으로는 명시적으로 설치하지 않은 패키지를 사용할 수 있는 유령 의존성, 중복 설치로 인한 node_modules 크기 증가, 복잡한 트리 구조로 인한 설치 및 런타임 속도 저하가 있습니다. 👻npm의 한계는 pnpm, yarn, 와 같은 다른 패키지 매니저들이 개선하고 있습니다. 🚀yarnberryRecommanded Videos