iamkanguk.dev

[Node.js] npm 명령어 학습 본문

Framework/Node.js

[Node.js] npm 명령어 학습

iamkanguk 2023. 12. 3. 05:52

최근에 NestJS 오픈채팅 커뮤니티에 들어갔는데 카카수님이 후배들을 양성하고 계신다. 전체적인 프로젝트를 관리해주시고, 다양한 지식을 습득할 수 있도록 GitHub Issue와 PR을 통해 도와주시는데 참고해도 괜찮다고 말씀하셔서 이렇게 하루에 한번씩 참고해서 공부해보려고 한다.

 

npm은 node package manager의 약자로 프로젝트에 필요한 라이브러리를 다운로드 또는 관리할 수 있도록 해주는 프로그램이다.

 

npm 설치 확인

node -v   # Node 버전 확인
npm -v   # npm 버전 확인

package.json 생성

npm init
npm init -y   # 기본값 입력

package install

npm install [패키지명]
npm i [패키지명]   # install을 i로 축약 가능하다
npm i [패키지명@버전이름]
npm i [패키지명1] [패키지명2]

npm i --save [패키지명]
npm i -S [패키지명]   # --save === -S

npm i --save-dev [패키지명]
npm i -D [패키지명]   # --save-dev === -D

npm install -g [패키지명]

 

참고) npm install 에서 --save 옵션을 입력하는 이유와 지금은 필요하지 않은 이유?

save 옵션은 package.json의 dependency 항목에 모듈을 추가한다는 의미이다. 참고로 package.json에서 우리는 프로젝트가 사용하는 모듈들의 의존성을 관리할 수 있는 것이다.

 

Node 프로젝트를 해보면, node_modules 라는 디렉토리를 볼 수 있는데 우리가 형상관리를 할 때 node_modules를 보통은 .gitignore에 적용하곤 한다. 그 이유는 폴더의 크기도 크고, package.json 파일만 있으면 자동으로 모듈들을 다운로드 받을 수 있기 때문이다.

 

그리고, npm 5버전 부터는 save 옵션을 기본으로 적용할 수 있게 되었기 때문에 save 옵션을 적용하지 않아도 dependencies에 항목을 추가할 수 있다.

 

그리고 save에 추가로 적용할 수 있는 옵션이 있다.

- -P 또는 --save-prod: package.json의 dependencies에 패키지를 등록한다. (이게 기본!)

- -D 또는 --save-dev: package.json의 devDependencies에 패키지를 등록한다.

- -O 또는 --save-optional: package.json의 optionalDependencies에 패키지를 등록한다.

- --no-save: dependencies에 패키지를 등록하지 않는다.

 

위에서 devDependencies는 애플리케이션 동작과는 직접적인 연관은 없다. 단지 차이점은 개발할 때 필요한 라이브러리이기 때문에 배포할 때 포함을 시키는지 안시키는지에 대한 차이이다.

package delete

npm uninstall [패키지명]
npm uninstall -g [패키지명]

package update

npm update [패키지명]

start command

npm start   # package.json의 scripts에 있는 start 명령어를 실행
npm run [script-name]   # 그 이외의 scripts를 실행한다

이 외의 다른 명령어들

npm root   # node_modules의 위치를 알려준다.
npm root -g   # global의 node_modules 위치 알려준다.

npm list   # 패키지 리스트 조회
npm ls   # npm list === npm ls
npm list(ls) -g   # 전역으로 설치된 패키지 리스트 조회
npm list(ls) --depth   # depth를 따로 적용시켜줄 수 있음, depth가 0이면 전역 모듈만 조회 가능

전역설치와 지역설치의 차이

- 전역설치는 시스템상에서 해당 라이브러리의 명령어를 인식하게끔 설정하기 위해 사용한다. 주로 CLI나 Demon (background-program) 등을 설치할 때 사용한다.

- 지역설치보통 프로젝트에서 사용할 라이브러리를 설치하기 위해 사용한다. 일반적으로는 지역설치를 사용하자!

Quiz: 아래 3개의 script 차이점은?

npm install package   # package 설치 (--save-prod)
npm install --save-dev package   # package 설치 (개발종속성)
npm install -g package   # package 전역설치

 

 

'Framework > Node.js' 카테고리의 다른 글

[Node.js] npm install 에러 이슈 공유  (1) 2023.12.07