프로젝트가 작동하기 위해 필요한 외부 모듈을 의미한다. 예를들어 프로젝트에서 Vue
프레임워클르 사용한다면, 이 프레임워크가 작동하기 위한 의존성 패키지가 필요하다. 이러한 패키지는 프로젝트에서 직접적으로 설치하지 않더라도, npm
에서 프로젝트를 빌드할 때, 이러한 의존성 패키지를 자동으로 설치하여 프로젝트를 실행가능한 상태로 만든다. 설치에 필요한 정보는 package.json
에 작성되어 관리된다.
프로젝트를 실행하는 패키지 이외에도, 개발에 필요한 의존성 패키지도 있다. 예를들어 node.js
서버를 업데이트하는 경우 서버는 켜고 끄지 않아도, nodemon
을 통해 변경사항을 바로 반영할 수 있다. 이러한 기능은 서비스를 제공하는데는 필요없는 기능이지만 개발과정에서는 업무의 효율을 높이는 모듈이기에 개발 시 반드시 설치하여 사용하게 된다.
이러한 개발에 필요한 목적으로 설치하는 패키지는 --dev
옵션을 통해 package.json
의 devDependencies
에서 관리된다. npm
은 실제 서비스 목적의 패키지와 개발 목적의 패키지를 별도로 나누어 관리함으로서, 프로젝트의 의존성을 보다 명확하게 관리한다.