특정 모듈이나 라이브러리를 설치할 때 npm install [설치하려는 모듈명] --save 처럼 뒤에 --save를 붙이는 경우를 봤는데 왜 붙이는지 알아보았다.
알아본 바로는 --save 옵션을 붙이면 package.json의 dependencies 항목에 설치하려는 모듈의 이름과 버전 정보를 적어준다고 한다.
dependencies란 "의존"이라는 뜻을 가진 dependency의 복수형이다. 그렇다면 "의존"은 뭘까?
B 없이는 작동할 수 없는 A가 있을 때, A가 B에 의존한다고 하며
A를 dependant, B를 dependency라고 한다.
package.json 파일을 열어보면 dependencies라는 항목이 있는데 이 항목은 해당 프로젝트가 의존하는 모듈들을 적어놓는 곳이다. 이렇게 하면 프로젝트가 작동하기 위해 어떤 모듈들을 사용하는지 알 수 있고, package.json이 있으면 프로젝트를 통째로 옮길 때 용량이 엄청나게 큰 node_modules 폴더를 제외하고 옮길 수 있게 된다. npm이 해당 프로젝트 package.json의 dependencies 항목을 보고 프로젝트가 의존하는 모듈들을 자동으로 다운로드 해주기 때문이다.
하지만 npm5 부터 dependencies에 모듈을 등록하는 게 기본 옵션이 됐기 때문에 이제는 --save를 붙이지 않아도 된다.
추가로 dependencies에 등록할 때, 옵션을 몇가지 설정할 수 있다.
-P or --save-prod
package.json의 dependencies에 패키지를 등록 (default 옵션)
-D or --save-dev
package.json의 devDependencies에 패키지를 등록(개발 단계에서만 사용(배포할 때 포함X)하는 모듈들을 지정)
-O or --save-optional
package.json의 optionalDependencies에 패키지를 등록
--no-save
dependencies에 패키지 등록을 하지 않음