npm, npm, yarn 모두 라이브러리를 설치할 때 한 번쯤 명령어로 입력해 봤을 거다. 라이브러리 설치 명령어를 보면 어쩔 때는 npm 어쩔 때는 npx 이렇게 각각 다른 방식을 사용하는 것을 보다가 자주 봐왔던 3개에 대해서 공통점과 차이점을 알아보려고 한다.
3가지 모두 패키지 관리자이다.
NPM (Node Package Manager)
특징
- Node.js 의 공식 패키지 관리자이며 Node.js 와 함께 설치되는 친구이다.
- npm 레지스트리에(저장소) 수많은 자바스크립트 오픈 소스 라이브러리가 등록되어 있어서 이를 통해 설치와 관리가 용이하다.
패키지 설치 방법
- npm install [패키지명] 으로 패키지를 설치한다.
- npm install -g [패키지명] : 글로벌 설치, 컴퓨터 전역에서 사용할 수 있도록 설치되며, 전역 경로에 위치한다.
- npm install [패키지명] : 현재 프로젝트 폴더에 패키지를 설치하며, 프로젝트 내 node_modules 폴더에 위치한다.
주요 파일
- package.json : npm 은 package.json 파일에 설치한 패키지의 버전 및 의존성을 기록한다. 협업 시 이 파일을 통해 팀원과 동일한 패키지를 설치할 수 있다.
- package-lock.json : 설치한 패키지의 특정 버전을 잠가두어, 다른 환경에서도 동일한 버전이 설치되도록 보장하는 파일이다.
NPX (Node Package Execute)
특징
- 특정 패키지를 일시적으로 실행할 수 있도록 한다. 즉, 컴퓨터에 설치하지 않고 한 번 실행할 때만 사용하고 싶을 때 사용한다.
- 설치하지 않고 바로 실행하기 때문에 최신 버전으로 실행되는 경우가 많다. 따라서 최신 버전이 필요하거나 설치된 버전과 다른 버전이 필요할 때 유용하다.
주의 사항
- npx 로 패키지를 설치하면 package.json 에 기록이 되지 않기 때문에 협업할 때 중요한 패키지를 설치해야하면 npx 는 사용하지 않는 것이 좋다. 왜냐면 npx 로 패키지를 설치하고 푸시를 하고 다른 개발자가 풀을 받으면 npm install 을 해도 package.json 에 변경점이 없기 때문에 새로 설치를하지 못하고 덩그러니 코드만 남아있는 상황이다. 이로인해 동일한 패키지를 설치하지 못하고 오류가 발생할 수 있다.
YARN (Yet Anothor Resource Negotiator)
특징
- npm의 단점을 개선하여 페이스북이 개발한 패키지 매니저이다.
- npm 과 거의 동일한 기능을 제공하지만 효율성, 속도 측면에서 차이가 있다.
- yarn 은 병렬로 패키지를 설치하고 캐싱 기능을 개선하여 속도가 빠르다. 같은 패키지를 설치할 때 yarn 이 더 빠르게 설치를 완료하는 경우가 많다.
패키지 설치 방법
- yarn add [패키지명]
주요 파일
- package.json : npm 과 동일하게 설치한 패키지의 버전을 기록한다.
- yarn.lock : 모든 의존성 트리의 정확한 버전을 기록하여 모든 패키지를 일관성 있게 관리하기 해주므로 여러 환경에서 동일한 패키지 버전이 설치되도록 보장한다.
요약

'Node.js' 카테고리의 다른 글
Node.js 란? (0) | 2024.07.12 |
---|