노드자스를 통해 개발하면서 무지성 install들을 해온것 같다. 그래서 정리해보는 시간.
1. npm options
기본적으로 npm install은 ./node_modules 폴더에 패키지를 다운받는 명령어이다.
나는 주로 npm 쓸때 접미사로 -D, -S, -g 옵션을 썼다. 왜냐? 블로그에서 이렇게 하라고 해서..
무슨 차이인지 모르고 써왔고 이거 때문에 문제 생긴적은 없었지만 찾아보니 나름의 의미가 있더라.
package.json을 보면 dependencies와 devDependencies가 있는데 얘네 중 어느쪽에 속하게 하도록 구분짓는 용도였다.
- dependencies: 프로덕션 환경에서 응용 프로그램에 필요한 패키지.
- devDependencies: 로컬 개발 및 테스트에만 필요한 패키지.
어떤 라이브러리가 빌드타임에 필요하면 devDependencies에 넣고, 런타임에도 필요하면 dependencies에도 넣어준다.
즉, 배포용 패키지와 개발용 패키지의 차이
--save는 package.json에 의존성 항목에 추가하도록 해주는 옵션인데 npm5부터는 굳이 --save 쓰지 않아도 된다고 한다.
-P/--save-dev (default)
암튼 그래서
npm install [패키지명] -P
npm install [패키지명] --save-prod
이렇게 옵션을 주면 패키지를 설치하고 dependencies 목록에 추가한다.
사실 디폴트 옵션이라 아무 옵션도 안써주는 경우가 이 경우였다.
npm install [패키지명]
-D/--save-dev
그렇다면 얘는 devDependencies에 속하도록 하는 옵션이다.
npm install [패키지명] -D
npm install [패키지명] --save-dev
-g/--global
전역모드로 설치하면 시스템 폴더에 패키지를 설치하게 된다. -g를 통해서 설치하면 package.json의 의존성 목록에 기록되지 않는다.
-P나 -D는 지역설치옵션으로 루트 디렉토리의 node_modules에 설치된다. 이렇게 설치된 패키지는 해당 프로젝트 내에서만 사용 가능하다.
-g를 통한 전역설치를 하면 모든 프로젝트에서 사용 가능하다.
npm install [패키지명] -g
npm install [패키지명] -global
이 내용들을 어떤 분이 친절하게 정리해 두셨다.
npm install
// package.json의 dependencies에 있는 모든 패키지를 설치한다.
// 처음 프로젝트를 세팅했다면 이 명령어로 패키지를 설치하고 개발을 시작하면 된다.
npm i
// npm install 의 줄인 명령어.
npm install [package]
// 현재 작업중인 디렉토리 내에 있는 ./node_modules에 [package]를 설치한다.
// (예: npm install moment) -> ./node_modules에 moment 패키지를 설치 함
npm install [package] --save
// [package]를 설치 하면서 package.json파일에 있는 dependencies 객체에 지금 설치한 패키지 정보를 추가한다.
npm install [package] --save -dev
// --save옵션과 같이 package.json파일에 의존성 내용을 추가하지만
// dependencies가 아닌 devDepenencies 객체에 추가한다.
–save와 –save-dev의 차이는 의존성을 기본으로 추가할지, 개발용으로 추가할지의 차이이다.
--production로 빌드할 경우 devDepenencies에 있는 패키지들은 설치되지 않는다
npm install [package] --no-save
// dependencies에 패키지 정보를 추가하지 않는다.
npm install [package] --save-exact
// 정확히 일치하는 버전의 패키지를 추가한다.
npm install [package] --save-bundle
// 해당 패키지를 bundleDependencies에 추가한다.
npm install [package] --force
// 해당 패키지가 존재하더라도 원격 저장소에 있는 패키지를 가져온다.
참고:
'NodeJS' 카테고리의 다른 글
[NodeJS] Swagger 자동 생성 라이브러리 swagger-autogen (0) | 2021.11.12 |
---|---|
[NodeJS] 기본값 파라미터(default parameter value) (0) | 2021.10.29 |
[NodeJS] Jest mock을 사용한 단위테스트 (0) | 2021.09.27 |
[NodeJS] tsconfig.json에 대해 알아보자 (0) | 2021.09.25 |
[NodeJS] Helmet을 사용한 Express 보안 (0) | 2021.09.20 |