라벨이 npm인 게시물 표시

package.json vs package-lock.json

`package.json`과 `package-lock.json` 두 파일 모두 npm을 사용하여 프로젝트의 의존성을 관리할 때 생성되고 사용되는 파일들입니다. 그러나 두 파일의 목적과 내용은 다르기 때문에 차이점을 이해하는 것이 중요합니다. 1. **package.json**: - **프로젝트 메타데이터**: 프로젝트의 이름, 버전, 설명, 스크립트, 라이센스 등의 기본 정보가 포함됩니다. - **의존성 목록**: 프로젝트에서 사용하는 외부 패키지들의 목록과 해당 패키지들의 "버전 범위"가 명시됩니다. 이 버전 범위는 `^`, `~`와 같은 특수 문자를 사용하여 표시되며, 이를 통해 특정 패키지의 어느 버전까지 허용할 것인지 결정합니다. - `npm install` 명령어를 사용하면 `package.json`에 명시된 의존성 버전 범위에 따라 패키지를 설치합니다. 2. **package-lock.json**: - **의존성 트리의 정확한 스냅샷**: 프로젝트의 모든 의존성과 해당 의존성의 **정확한 버전**, 그리고 그 의존성들이 의존하는 다른 패키지들에 대한 정보까지 포함합니다. - `package-lock.json`은 프로젝트의 의존성 트리를 "잠금"하여 동일한 의존성 구조가 항상 복원될 수 있도록 보장합니다. 이는 다양한 환경에서 일관된 설치를 보장하기 위한 목적으로 사용됩니다. - `npm install` 명령어가 실행될 때 `package-lock.json`이 있으면 이 파일에 기술된 정확한 버전의 패키지가 설치됩니다. 만약 이 파일이 없다면, `package.json`의 버전 범위에 따라 패키지가 설치되며, 이 과정에서 새로운 `package-lock.json`이 생성될 수 있습니다. **요약**: - `package.json`은 프로젝트의 의존성을 **선언**하는 파일입니다. - `package-lock.json`은 프로젝트의 의존성 트리의 정확한...