본문 바로가기

Language/React

[Node.js] npm과 npx, 전역 설치와 로컬 설치

React를 설치하다가 누구는 npm을 쓰고, 누구는 npx를 써서 의문이 생김

 

npm이란?
  • npm(Node Package Manager)은 Node.js의 패키지 매니저
  • 역할 : 패키지(라이브러리)를 설치, 관리, 삭제 하는 역할
  • 주요 기능
    • 패키지 설치 : npm install 패키지명
    • 패키지 삭제 : npm uninstall 패키지명
    • 프로젝트 의존성 관리 (dependencies와 devDependencies)
  • 설치 위치 : 패키지는 node_modules 폴더에 설치
  • 실행 : 설치된 패키지를 실행하려면 package.json에 있는 스크립트를 통해 실행 → npm start

 

npx란?
  • npm 패키지 실행 도구
  • 역할 : 패키지를 전역으로 설치하지 않고도 실행할 수 있도록 도움
  • 주요 기능
    • 패키지를 일시적으로 실행 : 로컬에 설치하지 않아도 한 번만 실행 가능 → npx create-react-app my-app
      → create-react-app을 설치하지 않고 바로 실행
    • 버전 지정 가능 : 특정 버전의 패키지를 실행 가능 → npx create-react-app@latest my-app
    • 로컬 패키지 실행 : 프로젝트에 설치된 패키지를 실행 가능 → npx eslint .  (프로젝트에 설치된 eslint 실행)
차이점 요약
구분 npm npx
목적 패키지를 설치하고 관리 패키지를 실행하는 데 도움
설치 여부 패키지를 설치한 후 사용해야 함 패키지를 설치하지 않고도 즉시 실행 가능
용도 의존성 관리, 설치, 삭제 단일 명령 실행, 로컬/전역 패키지 실행
예시 npm install react npx create-react-app my-app

 

언제 npx를 사용해야 할까?

 

  • 한 번만 사용할 패키지를 실행할 때
    • create-react-app, webpack-cli 같은 도구를 실행할 때.
  • 패키지를 설치하지 않고 최신 버전을 실행하고 싶을 때
    • 일회성 명령 실행 시 전역 설치를 피할 수 있음
  • 프로젝트에 로컬 설치된 패키지를 실행할 때
    • npx는 프로젝트 내의 node_modules에 있는 패키지를 자동으로 찾아 실행

 

결론
  • npm패키지를 설치 및 관리하는 도구
  • npx패키지를 설치하지 않고 실행하거나 로컬 패키지를 실행하는 도구
    → React 프로젝트를 만들 때 npx create-react-app을 사용하는 이유는 create-react-app을 전역 설치하지 않고도 바로 실행할 수 있기 때문

전역 설치와 로컬 설치
  • Node.js에서는 패키지를 로컬 또는 전역으로 설치 가능
로컬 설치 (Local Install)

 

  • 패키지가 현재 프로젝트 폴더에만 설치
  • 설치된 패키지는 해당 프로젝트의 node_modules 폴더 안에 저장
  • 명령어 : npm install 패키지명
  • 사용 사례 : 특정 프로젝트에서만 필요한 패키지
    Ex) react, express 등
전역 설치 (Global Install)

 

  • 패키지가 시스템 전체에 설치되며 모든 프로젝트에서 사용 가능
  • 패키지는 시스템의 전역 패키지 저장소에 설치
  • 전역으로 설치된 패키지는 명령어로 어디서든 실행 가능
  • 명령어 : npm install -g 패키지명
  • 사용 사례 : 명령줄 도구(CLI)를 설치하고 사용할 때
    Ex) create-react-app, nodemon, eslint
전역 설치 특징

 

  • 시스템 어디서나 실행 가능
    • 전역으로 설치된 패키지는 프로젝트 폴더와 무관하게 터미널(또는 명령어 프롬프트)에서 명령어로 실행 가능
  • 경로 : 전역 패키지는 보통 다음 경로에 설치
    • Windows : C:\Users\사용자명\AppData\Roaming\npm
    • macOS/Linux : /usr/local/lib/node_modules
  • 예시
    • create-react-app을 전역으로 설치 → npm install -g create-react-app
    • 이후 어디서든 다음 명령어를 사용 가능 create-react-app my-app

 

전역 설치를 피하는 경우

 

  • 버전 관리 문제
    • 전역으로 설치된 패키지하나의 버전만 사용 가능
    • 만약 다른 프로젝트에서 다른 버전을 필요로 한다면 충돌이 발생할 수 있음
  • 의존성 명시 불가
    • 프로젝트의 package.json에 전역 패키지는 기록되지 않음
    • 따라서 다른 개발자나 서버에서 동일한 환경을 설정하기 어려울 수 있음
  • 불필요한 설치
    • 전역 설치는 시스템 전체에 영향을 주므로, 일회성 사용이나 특정 프로젝트 전용 도구라면 불필요
결론

 

  • 전역 설치 : 시스템 전체에서 패키지를 사용할 수 있도록 설치하는 방법으로 주로 CLI 도구에서 사용
  • 로컬 설치 : 특정 프로젝트에만 패키지를 설치하는 방법
  • npx를 사용하면 전역 설치 없이 필요한 패키지를 바로 실행할 수 있으므로 더 편리하고 안전한 방법