상세 컨텐츠

본문 제목

[npm] npm install에 --save를 붙이는 이유와 package.json의 dependencies

카테고리 없음

by spring92 2021. 7. 8. 03:13

본문

특정 모듈이나 라이브러리를 설치할 때 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에 패키지 등록을 하지 않음

참고 https://docs.npmjs.com/cli/v7/commands/npm-install