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
항목에 자주 사용하는 명령어를 정의해두면 간단한 명령으로 실행할 수 있습니다.
"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 환경에서 빠르게 의존성을 설치할 수 있도록 고안된 명령어입니다.