npm(Node Package Manager) 사용 시 자주 쓰는 명령어

Node.js는 자바스크립트를 서버에서도 실행할 수 있도록 도와주는 런타임 환경입니다. npm은 Node.js의 패키지 관리자 도구로, 필요한 라이브러리나 프레임워크를 쉽게 설치하고 관리할 수 있도록 도와줍니다. 이 둘은 웹 개발에 필수적인 도구이며, 다양한 명령어를 통해 프로젝트를 체계적으로 구성할 수 있습니다.

## 📁 프로젝트 초기화 및 설정

| 명령어 | 설명 |
|——–|——|
| `npm init` | `package.json` 파일을 생성합니다. 프로젝트 이름, 버전, 설명 등을 입력받아 기본 설정을 완료합니다. |
| `npm init -y` | 질문 없이 기본값으로 `package.json`을 자동 생성합니다. 빠른 셋업 시 유용합니다. |

`package.json`은 프로젝트 정보를 담고 있으며, 설치된 패키지 목록, 실행 스크립트, 의존성 정보 등이 저장됩니다. 대부분의 Node.js 프로젝트는 이 파일을 기반으로 시작합니다.

## 📦 패키지 설치 및 관리

| 명령어 | 설명 |
|——–|——|
| `npm install` 또는 `npm i` | `package.json`에 정의된 의존성들을 설치합니다. Git으로 프로젝트를 클론 받은 후 실행하는 대표 명령어입니다. |
| `npm install [패키지명]` | 개별 패키지를 설치합니다. 예: `npm install express` |
| `npm install [패키지명] –save-dev` | 개발 환경에서만 필요한 패키지를 설치합니다. 예: `webpack`, `eslint` 등 |
| `npm uninstall [패키지명]` | 설치된 패키지를 제거합니다. `package.json`에서도 자동으로 삭제됩니다. |
| `npm update` | 기존에 설치된 패키지를 가능한 최신 버전으로 업데이트합니다. |
| `npm outdated` | 현재 설치된 패키지들의 최신 버전과 비교하여 업데이트가 필요한 항목을 확인합니다. |

## 🌍 전역(Global) 설치

전역 설치는 시스템 전체에서 접근 가능한 명령어를 설치할 때 사용합니다.

| 명령어 | 설명 |
|——–|——|
| `npm install -g [패키지명]` | CLI 도구 등을 전역으로 설치합니다. 예: `npm install -g nodemon` |
| `npm uninstall -g [패키지명]` | 전역으로 설치된 패키지를 제거합니다. |
| `npm list -g –depth=0` | 전역에 설치된 패키지 목록을 확인합니다. `–depth=0` 옵션은 루트 수준만 표시하게 해줍니다. |

## 🛠️ 스크립트 실행

`package.json`의 `scripts` 항목에 자주 사용하는 명령어를 정의해두면 간단한 명령으로 실행할 수 있습니다.

“`json
“scripts”: {
“start”: “node app.js”,
“dev”: “nodemon app.js”,
“build”: “webpack”
}
“`

| 명령어 | 설명 |
|——–|——|
| `npm run [스크립트명]` | 지정된 사용자 스크립트를 실행합니다. 예: `npm run dev` |
| `npm start` | `npm run start`와 동일합니다. 별도 입력 없이 실행 가능 |
| `npm test` | 테스트 실행용 스크립트 (예: `jest`, `mocha` 등과 함께 사용) |

## 🔧 문제 해결 및 보안

| 명령어 | 설명 |
|——–|——|
| `npm audit` | 설치된 패키지에 보안 취약점이 있는지 검사합니다. |
| `npm audit fix` | 자동으로 취약점을 수정 가능한 경우 수정합니다. |
| `npm cache clean –force` | npm의 내부 캐시를 강제로 삭제합니다. 캐시 문제로 인해 설치 오류가 날 때 유용합니다. |

## ⚡ npx 명령어

`npx`는 npm 패키지를 설치하지 않고도 한 번만 실행할 수 있도록 도와주는 도구입니다.

| 명령어 | 설명 |
|——–|——|
| `npx [패키지명]` | 패키지를 설치하지 않고 일시 실행합니다. 예: `npx create-react-app myApp` |

npx는 특히 프로젝트 생성 CLI 도구를 실행할 때 매우 유용합니다.

## 🔍 기타 명령어

| 명령어 | 설명 |
|——–|——|
| `npm ls` | 현재 프로젝트에 설치된 패키지 의존성 트리를 출력합니다. |
| `npm ls [패키지명]` | 특정 패키지의 설치 여부 및 위치를 확인할 수 있습니다. |
| `node -v` | 현재 설치된 Node.js의 버전을 확인합니다. |
| `npm -v` | npm의 버전을 확인합니다. |
| `npm help` | 명령어 도움말을 출력합니다. `npm help install`처럼 세부 도움말도 가능 |

## 🧩 마무리 팁

– Node.js와 npm을 제대로 이해하면 프로젝트 환경을 더 견고하게 만들 수 있습니다.
– `package-lock.json`은 의존성 버전을 고정해주는 중요한 파일이므로, 배포 시 반드시 포함해야 합니다.
– `npm ci`는 CI/CD 환경에서 빠르게 의존성을 설치할 수 있도록 고안된 명령어입니다.

Leave a Comment