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 실행)
- 패키지를 일시적으로 실행 : 로컬에 설치하지 않아도 한 번만 실행 가능 → npx create-react-app my-app
차이점 요약
구분 | 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를 사용하면 전역 설치 없이 필요한 패키지를 바로 실행할 수 있으므로 더 편리하고 안전한 방법
'Language > React' 카테고리의 다른 글
[개념] List와 Key (0) | 2025.01.01 |
---|---|
[개념] 렌더링과 조건부 렌더링 (0) | 2024.12.31 |
[개념] React Hook (0) | 2024.12.30 |
[개념] React의 개념, 컴포넌트, JSX, Props, State (1) | 2024.12.26 |
[React] 리액트 프로젝트 생성 시 에러 발생 (1) | 2024.12.17 |