NPM 글로벌 패키지 설치 및 활용 가이드

NPM 글로벌 패키지 설치 및 활용 가이드

Node.js 개발 환경에서 패키지 관리는 필수적인 부분입니다. 특히 NPM(Node Package Manager)을 통한 패키지 설치는 개발 워크플로우의 핵심입니다. 이 글에서는 NPM의 글로벌 패키지 설치 방법과 로컬 설치와의 차이점, 그리고 개발 시 알아두면 유용한 NPM 관련 팁들을 정리해 보겠습니다.

NPM 글로벌 패키지 설치 방법

글로벌 패키지는 특정 프로젝트에 종속되지 않고 시스템 전체에서 사용할 수 있는 패키지입니다. 주로 명령줄 도구(CLI)를 설치할 때 사용됩니다.

npm install -g 패키지이름
# 또는
npm install --global 패키지이름

예를 들어, Create React App을 전역으로 설치하려면:

npm install -g create-react-app

관리자 권한이 필요한 경우:

  • Windows에서는 관리자 권한으로 명령 프롬프트나 PowerShell을 실행

macOS/Linux에서는 명령 앞에 sudo 추가:

sudo npm install -g 패키지이름

-g-D의 차이점

NPM 패키지를 설치할 때 자주 사용되는 두 플래그, -g-D의 차이점을 알아보겠습니다.

-g (--global)

  • 패키지를 시스템 전역에 설치
  • 어느 프로젝트에서나 접근 가능
  • CLI 도구나 전역적으로 사용할 유틸리티에 적합
  • package.json에 의존성으로 기록되지 않음

-D (--save-dev)

  • 개발 의존성(devDependencies)으로 설치
  • 해당 프로젝트의 개발 과정에서만 필요한 패키지
  • 프로덕션 환경에서는 설치되지 않음 (npm install --production 사용 시)
  • 테스트 프레임워크, 빌드 도구, 린터 등에 사용

알아두면 유용한 NPM 명령어와 팁

패키지 설치 관련

# 기본 설치 (dependencies에 추가)
npm install 패키지명

# 특정 버전 설치
npm install 패키지명@1.2.3

# 최신 버전 설치
npm install 패키지명@latest

# 정확한 버전으로 설치 (^없이)
npm install -E 패키지명
npm install --save-exact 패키지명

# package.json에 기록하지 않고 설치
npm install --no-save 패키지명

패키지 관리

# 전역 패키지 목록 확인
npm list -g --depth=0

# 전역 설치 위치 확인
npm root -g

# 모든 패키지 업데이트
npm update

# 업데이트 가능한 패키지 확인
npm outdated

# 패키지 삭제
npm uninstall 패키지명
npm uninstall -g 패키지명  # 전역 패키지 삭제

환경 설정 및 기타 명령

# 기본값으로 package.json 생성
npm init -y

# package.json의 scripts 실행
npm run 스크립트이름

# package-lock.json에 맞춰 정확한 설치 (CI 환경용)
npm ci

# 보안 취약점 검사
npm audit
npm audit fix  # 자동 수정 시도

# npm 캐시 정리
npm cache clean --force

# 기본 작성자 이름 설정
npm config set init-author-name "이름"

# 현재 설정 확인
npm config list

npx 활용

npx는 Node.js와 함께 설치되는 도구로, 패키지를 로컬에 설치하지 않고도 실행할 수 있게 해줍니다.

# 설치하지 않고 패키지 실행
npx 패키지명

# 일회성 패키지 실행 (설치 없이)
npx create-react-app 앱이름

언제 글로벌 설치를 사용해야 할까?

글로벌 설치는 편리하지만, 항상 최선의 선택은 아닙니다. 다음과 같은 상황을 고려해보세요:

글로벌 설치가 적합한 경우

  • 여러 프로젝트에서 공통으로 사용하는 CLI 도구
  • 시스템 수준의 유틸리티 (예: nodemon, http-server)
  • 프로젝트와 직접적인 관련이 없는 개발 도구

로컬 설치가 적합한 경우

  • 프로젝트에 종속된 라이브러리
  • 버전 충돌이 발생할 수 있는 패키지
  • 팀 프로젝트에서 일관성 있는 환경 구축이 필요한 경우

가능하면 npx를 사용하거나 로컬 설치 후 npm 스크립트에 등록하는 방식을 권장합니다. 이는 버전 관리와 프로젝트의 이식성 측면에서 더 안정적입니다.

마치며

NPM은 단순한 패키지 관리자를 넘어 Node.js 생태계의 중추적인 역할을 담당합니다. 글로벌 패키지와 로컬 패키지의 차이를 이해하고 상황에 맞게 활용한다면, 더 효율적인 개발 환경을 구축할 수 있을 것입니다. 특히 -g-D 플래그의 차이점과 다양한 npm 명령어들을 숙지하면 일상적인 개발 작업이 한결 수월해질 것입니다.