반응형
package.json
파일에서 dependencies
와 devDependencies
는 각각 다른 목적을 가진 의존성들을 지정하는 데 사용됩니다. 이 둘의 차이점을 이해하는 것은 프로젝트 관리와 배포 과정에서 매우 중요합니다.
dependencies
- 목적: 애플리케이션이 운영 환경에서 정상적으로 실행되기 위해 필요한 라이브러리와 모듈들을 포함합니다.
- 사용 예: 프론트엔드 프레임워크(React, Angular), 백엔드 라이브러리(Express, Koa) 등.
- 설치 명령어:
npm install [package-name]
또는npm install --save [package-name]
(최근 버전에서는 기본 옵션으로 저장됨). - 예시:
{ "dependencies": { "express": "^4.17.1", "react": "^17.0.2" } }
- 설치:
npm install
명령어를 실행하면 자동으로dependencies
에 명시된 모든 패키지가 설치됩니다.
devDependencies
- 목적: 애플리케이션의 개발 및 테스트 과정에서 필요한 라이브러리와 도구들을 포함합니다. 운영 환경에서는 필요하지 않습니다.
- 사용 예: 테스트 프레임워크(Jest, Mocha), 린팅 도구(ESLint), 빌드 도구(Webpack, Babel) 등.
- 설치 명령어:
npm install --save-dev [package-name]
또는npm i -D [package-name]
. - 예시:
{ "devDependencies": { "eslint": "^7.32.0", "jest": "^27.0.6" } }
- 설치:
npm install
명령어를 실행하면devDependencies
에 명시된 패키지도 함께 설치됩니다. 그러나NODE_ENV=production npm install
을 사용하면devDependencies
는 설치되지 않습니다.
주요 차이점
운영 환경 vs 개발 환경:
dependencies
는 애플리케이션이 실행되기 위해 항상 필요한 패키지를 포함합니다.devDependencies
는 애플리케이션 개발 및 테스트를 위해 필요한 패키지를 포함합니다.
설치 시점:
- 기본적으로
npm install
은dependencies
와devDependencies
모두를 설치합니다. NODE_ENV=production npm install
명령을 실행하면dependencies
만 설치됩니다. 이는 운영 환경에서 불필요한 개발 도구를 설치하지 않도록 합니다.
- 기본적으로
패키지 업데이트:
npm update
명령어는dependencies
와devDependencies
모두를 업데이트합니다.- 개별 업데이트는
npm update [package-name]
을 사용합니다.
정리
- dependencies: 애플리케이션이 실제로 동작하는 데 필요한 패키지. (운영 환경)
- devDependencies: 애플리케이션 개발 및 테스트에 필요한 패키지. (개발 환경)
이 구분을 통해 애플리케이션의 성능과 보안, 유지보수를 효율적으로 관리할 수 있습니다. 프로젝트를 배포할 때 불필요한 패키지를 포함하지 않도록 하여 배포 크기를 줄이고 보안을 강화할 수 있습니다.
반응형
'node.js' 카테고리의 다른 글
node_modules/node-sass: Command failed. 오류 해결 하기 (0) | 2022.02.14 |
---|