devDependency
와 dependency
는 자바스크립트 프로젝트에서 package.json 파일 내에서 사용되는 두가지 종류의 의존성 카테고리입니다.
이 두 카테고리는 다음과 같은 주요 차이점을 가지고 있습니다.
이 카테고리에 나열된 패키지는 프로젝트가 실제로 실행될 때 필요합니다. 예를 들어서, 웹 서버를 구동하는 라이브러리나 프론트엔드 프레임워크, 유틸리티 라이브러리 등이 여기에 포함됩니다.
이 카테고리에 나열된 패키지는 개발 및 빌드 과정에서만 필요하며, 실제 프로덕션 환경에서는 필요하지 않습니다. 예를 들어서, 테스트라이브러리, 빌드도구, 코드 포맷터 등이 여기에 포함됩니다.
npm install // dependency와 devDependency 모두 설치됩니다.
npm install --production // dependency만 설치되며 devDependency는 설치되지 않습니다.
yarn
or
yarn install
yarn add [패키지명] //dependency에 패키지 추가
yarn add [패키지명] --dev // devDependency에 패키지 추가
yarn remove [패키지명] // dependency 또는 devDependency에서 제거
dependency
만 설치하는 별도의 명령어가 없습니다. 그러나 NODE_ENV
환경 변수를 설정하여 이를 수행할 수 있습니다.NODE_ENV = production yarn install --production
yarn upgrade // 모든 패키지를 최신 버전으로 업그레이드
yarn upgrade [패키지명] // 특정 패키지만 업그레이드
실제 프로덕션 환경에서는 dependency
에 나열된 패키지만 필요하며, devDependency
에 나열된 패키지는 필요하지 않습니다. 따라서 배포할 시에 devDependency
패키지를 포함하지 않아도 됩니다.