[npm] Node의 패키지 관리 도구, 자주 쓰는 명령어 모음

npm 이란?
NPM은 Node.js를 위한 패키지 매니저와 설치 관리자로, 수많은 오픈소스 라이브러리와 도구들이 업로드되는 저장소입니다. NPM CLI를 사용하여 필요한 라이브러리나 도구를 쉽게 설치할 수 있으며, 프로젝트 관리를 위한 다양한 명령어를 제공합니다. Node.js를 설치하면 자동으로 NPM도 설치되며, 이는 패키지를 서로 공유하기 위함입니다. NPM은 세계에서 가장 큰 소프트웨어 라이브러리이며, 800,000개 이상의 코드 패키지를 보유하고 있습니다. 오픈소스 개발자들은 NPM을 사용하여 소프트웨어를 공유하며, 많은 기업들도 NPM을 이용하여 개인적인 개발을 관리합니다. NPM은 무료로 사용할 수 있습니다.
npm을 이용해 패키지 설치하기
1. package.json
프로젝트의 정보와 의존성 패키지를 기록하는 package.json 파일이 생성됩니다. 이 파일은 프로젝트의 정보와 필요한 패키지의 정보를 저장하는 JSON 형식의 파일입니다.
npm init
2. npm install
필요한 패키지를 설치할 때는 npm install 명령어를 사용합니다. 이 때, 설치된 패키지는 package.json의 dependencies 항목에 추가되며, node_modules 디렉토리에 저장됩니다.
npm install OOO
npm i --save OOO
# node_modules 디렉토리에 모듈을 설치하고, 추가로 package.json에 디펜던시를 추가해줌
# node15 부턴 --save옵션이 default 값이 되었음
3. 전역 패키지 설치
주로 프로젝트에 종속되지 않는 커맨드라인 도구들을 전역 패키지로 추가해서 사용할 수 있습니다.
- npm install은 프로젝트 폴더에 패키지를 설치하지만 -g 는 시스템 폴더에 패키지를 설치함
- -g 플래그를 사용할 경우 package.json 의 의존성 목록에 빠진다.
npm install OOO -g
npm install OOO --global
4. 개발 환경 패키지 설치
개발 중인 프로젝트에서만 사용되는 패키지를 설치하고자 할 때에는 --save-dev 옵션을 사용합니다. 이 때, 설치된 패키지는 package.json의 devDependencies 항목에 추가됩니다.
npm install OOO -D
npm install OOO --save-dev
5. 모든 의존성 패키지 설치
package.json의 dependencies와 devDependencies 항목의 모든 패키지를 설치합니다.
npm install
5. 프로덕션용 패키지만 설치
프로젝트를 배포할 때에는 개발용 의존성을 같이 포함할 필요가 없습니다. 이 경우, --production 옵션을 사용하여 dependencies만 node_modules에 내려받습니다.
npm install --production
6. 패키지의 버전을 지정하여 설치하기
패키지 이름 뒤에 @ 기호를 사용하고, 버전을 지정하면 됩니다.
~ 버전 (tilde version) 마이너 버전 유지, 패치 레벨 버전만 업그레이드
^ 버전 (caret version) 메이저 버전 유지, 마이너 버전까지 업그레이드
npm install OOO @[version]
# 정확히 1.13.0인 버전 설치
npm install OOO@1.13.0
# 1.13.XXX 설치
# 1.13.0 이상, 1.14.0 미만 버전 설치
npm install OOO@~1.13.0
# 1.XXX.XXX 설치
# 1.13.0 이상, 2.0.0 미만 버전 설치
npm install OOO@^1.13.0

다양한 npm 명령어
모듈 지우기
package.json의 dependencies와 devDependencies에서 삭제하고 node_modules에서도 삭제한다.
npm uninstall OOO
npm 캐시 삭제
여러 프로젝트 진행 중, 모듈 충돌 및 예기치 못한 에러 발생시 사용한다.
npm cache clean
글로벌 모듈 관련 명령어
$ npm list -g --depth=0
# 글로벌 모듈 확인
console
├── eslint@6.8.0
├── eslint-config-airbnb-base@14.0.0
├── eslint-plugin-import@2.19.1
├── eslint-plugin-prettier@3.1.2
$ npm uninstall -g <패키지이름>
#글로벌 모듈 삭제
- 시스템의 node_modules 폴더 경로는 npm root -g 를 통해 찾을 수 있다.
- Win10 기준으로는 (사용자명)\AppData\Roaming\npm\node_modules
- MAC 기준 /usr/local/lib/node_modules