포스트

NPM의 Dependencies, DevDependencies, PeerDependencies 차이점

개요

NPM(Node Package Manager)을 사용하면서 package.json 파일에 나타나는 dependencies, devDependencies, peerDependencies 키워드를 본 적이 있을 것입니다. 이 세 가지 키워드는 패키지를 설치하거나 프로젝트를 관리할 때 중요한 역할을 합니다. 이 글에서는 이들 각각의 차이점과 사용 시기에 대해 자세히 설명하겠습니다.

Dependencies 란?

Dependencies는 애플리케이션을 실행하기 위해 필요한 패키지나 라이브러리를 나타냅니다. 예를 들어, 웹 서버를 만드는 데 필요한 express나 데이터베이스를 다루는 mongoose와 같은 패키지가 이에 해당합니다. npm install 명령어를 실행하면 dependencies에 명시된 패키지가 설치됩니다.

1
2
3
4
5
6
{
  "dependencies": {
    "express": "^4.17.1",
    "mongoose": "^5.12.3"
  }
}

DevDependencies 란?

DevDependencies는 개발 과정이나 테스트를 위해 필요한 패키지를 나타냅니다. 이 패키지들은 실제 애플리케이션에는 포함되지 않습니다. 예를 들어, 코드 포맷팅 도구인 prettier나 테스트 라이브러리인 jest가 여기에 해당됩니다. npm install --save-dev 명령어로 설치할 수 있습니다.

1
2
3
4
5
6
{
  "devDependencies": {
    "prettier": "^2.3.2",
    "jest": "^27.0.4"
  }
}

PeerDependencies 란?

PeerDependencies는 호환성을 위해 필요한 패키지를 나타냅니다. 이 패키지는 사용자가 직접 설치해야 합니다. 예를 들어, React 라이브러리를 사용하는 플러그인이 React 버전과 호환성을 유지해야 할 때 peerDependencies를 사용합니다.

1
2
3
4
5
{
  "peerDependencies": {
    "react": "^17.0.0"
  }
}

정리

  • Dependencies: 애플리케이션 실행에 필요한 패키지
  • DevDependencies: 개발과 테스트에 필요한 패키지
  • PeerDependencies: 호환성을 위해 사용자가 설치해야 하는 패키지

이 세 가지는 각기 다른 목적과 사용 시기가 있으므로, 올바른 카테고리에 패키지를 배치하는 것이 중요합니다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.