240920 TIL package.json vs package-lock.json
package.json vs package-lock.json
1. package.json
- Node.js 프로젝트의 필수 파일로, 프로젝트에서 사용하는 모든 패키지(라이브러리)와 스크립트를 정의하는 역할
- 패키지의 이름, 버전, dependencies, devDependencies, 실행 스크립트 등이 기록됨
2. package-lock.json
npm install
을 실행할 때 자동으로 생성
- package.json에 명시된 dependencies를 정확히 어떤 버전으로 설치했는지 기록하는 역할
- dependencies 트리를 고정하고, 다른 개발자가 같은 패키지 버전을 설치할 수 있도록 보장
dependencies vs devDependencies
1. dependencies
- 프로젝트 환경에서 반드시 필요한 패키지 목록들을 정의하는 부분
- package.json 안에 위치하여 베포할 때나 앱이 실행될 때 같이 설치됨
2. devDependencies
- 개발 환경에서만 필요한 패키지 목록들을 정의하는 부분
- package.json 안에 위치하여 개발자의 작업을 위한 패키지 목록들을 정의
- 앱이 실제로 동작할 때는 필요없으며 개발 상의 편의를 위함