npm install의 옵션 중에서 --save
로 끝날 때와 --save-dev
로 끝날 때가 있다. 차이는 대충은 알고 있었지만 확실히 하고자 블로그로 정리한다!
먼저 npm이란 자바스크립트용 Package Manager이다. package.json 파일을 통해 프로젝트 정보와 패키지의 의존성을 관리한다. 협업 시 동일한 개발 환경을 구축할 수 있다.
패키지를 설치하기 위한 명령어이다. ./node_modules 디렉터리에 패키지를 설치한다. 단순히 npm install
을 하게 되면 package.json에 있는 모든 패키지를 내려받는다. 하지만 개발용 그리고 서비스용으로 나뉜 경우 모두 다운로드하게 되면 자원의 낭비가 생긴다. 의존성 목록을 구분해줄 필요가 있기에 옵션으로 나눌 수 있다.
package.json에서는 프로젝트가 사용하는 모듈들의 의존성을 관리할 수 있다. 따라서 프로젝트를 공유할 때 node_modules 폴더를 공유하지 않더라도 package.json의 항목을 통해 프로젝트에 의존된 모듈을 다운로드할 수 있다.
package.json 파일의 dependencies 항목에 있는 해당 패키지 정보가 추가된다. dependencies는 제품의 릴리즈에 필요한 항목이다. 빌드 과정에 포함된다.
npm 5 버전 이후부터는 npm install
은 npm install --save
과 같은 의미이다. --save가 default값이 되었기 때문이다.
package.json 파일에 있는 devDependencies 항목에 해당 패키지 정보가 추가된다. devDependencies 개발 혹은 테스트 단계에서만 사용하는 패키지이다.
npm install -D
와 같은 의미이며, 주로 개발용으로 사용하는 패키지는 eslint, webpack, axios 등이 있다. 서비스 로직과는 상관없이 개발에 편의성을 주는 도구이기 때문이다.
--
cf)
npm-install DOCS
https://xtring-dev.tistory.com/11
npm(node package manager) 완벽 정리