"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Node.js 프로젝트의 종속성 이해

Node.js 프로젝트의 종속성 이해

2024-08-31에 게시됨
검색:159

Understanding Dependencies in Node.js Projects

Node.js 프로젝트의 종속성 이해

Node.js 프로젝트 작업 시 종속성을 관리하는 것은 프로젝트가 원활하게 실행되도록 하는 중요한 측면입니다. 종속성은 프로젝트가 작동하는 데 필요한 라이브러리 또는 패키지입니다. 알아야 할 종속성에는 devDependency와 일반 종속성의 두 가지 주요 유형이 있습니다.

종속성 유형

개발 종속성

개발 단계에서만 필요한 패키지입니다. 프로덕션 환경에서는 필요하지 않습니다. 예를 들어 프로젝트를 빌드하거나 번들링하는 데 도움이 되는 소포, 웹팩 또는 바벨과 같은 도구는 일반적으로 devDependency로 나열됩니다.

다음은 package.json 파일에서 devDependency를 정의하는 방법에 대한 예입니다.

"devDependencies": {
  "parcel": "^2.8.3"
}

일반 종속성

개발 및 프로덕션 환경 모두에서 프로젝트에 필요한 패키지입니다. 예를 들어 React와 같은 프레임워크, HTTP 요청을 작성하기 위한 라이브러리 또는 애플리케이션이 실행하는 데 사용되는 기타 코드가 포함됩니다.

버전 관리 기호 이해

package.json 파일에서 버전 번호 앞에 ^ 또는 ~와 같은 기호가 표시될 수 있습니다. 다음 기호는 버전 범위를 지정하는 데 사용됩니다.

  • 캐럿(^): 이 기호를 사용하면 부 버전으로 업데이트할 수 있습니다. 예를 들어, "parcel": "^2.8.3"은 2.8.3에서 3.0.0 미만의 모든 버전이 허용된다는 의미입니다.

  • 물결표(~): 이 기호를 사용하면 패치 버전을 업데이트할 수 있습니다. 예를 들어, "parcel": "~2.8.3"은 2.8.3에서 2.9.0 미만의 모든 버전이 허용된다는 의미입니다.

package.json 및 package-lock.json

package.json과 package-lock.json은 모두 Node.js 프로젝트에서 종속성을 관리하는 데 필수적이지만 서로 다른 목적으로 사용됩니다.

  • package.json: 이 파일은 프로젝트에 필요한 종속성을 나열하고 버전 범위(^ 또는 ~)를 포함할 수 있습니다.

  • package-lock.json: 이 파일은 각 종속성의 정확한 버전을 잠가서 귀하 또는 다른 사람이 프로젝트를 설치할 때마다 동일한 버전이 사용되도록 보장합니다.

구성 및 노드 모듈 이해

package.json 파일은 필요한 패키지와 해당 버전을 지정하여 프로젝트 구성의 일부로 볼 수 있습니다. node_modules 폴더는 이러한 모든 패키지가 설치된 데이터베이스와 같습니다.

전이적 종속성

종속성은 자체 종속성을 가질 수 있으며 전이적 종속성이라는 체인을 생성합니다. 예를 들어 Parcel은 다른 패키지에 종속될 수 있으며 해당 패키지는 더 많은 패키지에 종속될 수 있습니다. 이 체인은 자동으로 관리되어 필요한 모든 패키지가 설치되도록 보장합니다.


이를 통해 Node.js 프로젝트에서 종속성이 어떻게 작동하는지 더 명확하게 이해할 수 있기를 바랍니다. 이를 올바르게 관리하면 개발 및 생산 과정에서 프로젝트가 예상대로 효율적으로 실행될 수 있습니다.

릴리스 선언문 이 글은 다음에서 복제됩니다: https://dev.to/tushar_pal/understanding-dependents-in-nodejs-projects-44i3?1 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3