[FrontEnd]/Java Script
nvm, npm ,npx, yarn, package.json 간단 정리
팡펑퐁
2023. 5. 15. 09:49
728x90
nvm(Node Version Manager)
- Node.js를 설치하는 툴이다.
- Node.js의 다양한 버전을 관리하는 프로그램으로 원하는 버전을 쉽게 설치할 수 있다.
nvm으로 Node.js를 설치하는 이유
- OS에서 특정 버전의 Node.js를 설치하면 향후 다른 버전의 Node.js가 필요한 경우 대응이 불가능하게 되어 먼저 nvm을 설치하고 설치한 nvm을 통해 원하는 특정 버전의 Node.js를 원하는 조건에 따라 복수로 설치할 수 있다.
npm(Node Package Manager)
- Node.js로 개발된 프로그램(npm 패키지)을 간단하게 설치 및 업데이트, 삭제할 수 있는 프로그램이다.
- 필요한 모듈을 다운로드할 수 있고 수많은 모듈이 모여있는 모듈 스토어이다.
- Node.js를 설치하게 되면 함께 설치된다.
- Node가 모듈을 찾을 수 있도록 모듈을 배치하고 종속성 충돌을 지능적으로 관리한다.
- npm 명령어를 이용하여 npm 서비스에 등록된 Node.js로 작성된 패키지를 관리할 수 있다.
npm 명령어
npm init
# pakage.json을 생성한다.
npm install
# package.json 파일 및 해당 종속성에 나열된 모든 모듈을 설치한다.
npm install
package_name@버전 # 특정 패키지의 특정 버전을 설치한다.
npm install 주소
# 특정 저장소 내 패키지 설치를 설치한다.
npm install package_name -g
# 옵션으로 패키지를 글로벌로 설치힌디.(로컬의 다른 프로젝트도 이 패키지를 사용 가능하게 된다.)
npm uninstall
# 패키지를 삭제한다.
npm update
# 설치한 패키지들을 업데이트한다.
npm dedupe
# 중복 설치된 패키지들을 정리해주는 명령어입니다.
pacakge.json이란?
- 프로젝트 정보와 의존성을 관리하는 문서이다.
- 어떤 패키지를 사용하며 어떤 버전인지 등을 기록하여 장소에 상관없이 동일한 개발 환경을 구축할 수 있도록 도와준다.
정리
nvm 설치 -> 원하는 버전의 Node.js 설치 -> npm을 이용하여 필요한 패키지를 추가설치
npx(Node Package Execute)
- npm의 5.2.0 버전부터 새로 추가된 도구이다.
- 따라서 npm 5.2.0 버전 이상이 깔려 있는 pc에서는 npx 명령어를 사용할 수 있다.
- npm과 같은 패키지 관리 모듈이 아니다.
- npm을 더욱 편하게 사용하기 위해 npm에서 제공하는 도구이다.
- npm이 패키지를 관리하는 매니저라면 npx는 패키지를 임시 설치하여 실행시키는 패키지 실행기이다.
- 일회성 패키지를 사용할 때 사용하면 된다.
yarn
- 페이스북에서 만든 자바스크립트 패키지 매니저로 npm과 같은 기능을 가지고 있다.
- npm의 단점으로 꼽히던 속도, 안전성, 보안성 부분에서 뛰어난 성능을 가지고 있다.
속도(performance)
- 다운로드한 패키지 데이터를 캐싱하여 중복된 데이터는 다운로드하지 않고 캐시에 저장된 파일을 활용하여 패키지 설치 속도가 빠르다.
- 패키지를 설치할 때도 병렬로 처리하기 때문에 performance와 speed가 좋다.
- npm의 경우 순차적으로 처리하기 때문에 패키지 설치 측면에서는 yarn이 더 빠르다.
안정성(stability)과 보안성(security)
- yarn.lock이나 package.json으로부터 설치만 하여 yarn.lock은 모든 디바이스에 같은 패키지를 설치하는 것을 보장하므로 버전의 차이로 생기는 문제를 사전에 방지할 수 있다.
npm vs yarn?
yarn이 npm의 단점을 보완하여 나왔다고는 하지만 npm 역시 지금은 단점을 많이 보완했기 때문에 둘의 차이가 크지 않다고 한다. 굳이 따지자면 yarn의 병렬적 패키지 설치로 인한 가벼움, 버전의 차이로 인한 버그 방지 기능 때문에 yarn이 더 좋다고 말할 수 있다.
그러나, npm은 yarn의 원조이므로 사용자 수가 많아 접근성이 좋다. 이 부분을 고려했을 때 처음 사용하는 사람이라면 npm을 먼저 사용하고 이후에 yarn의 필요성을 느끼게 된다면 yarn을 사용하는 것이 두 프로그램을 이해하는 데 도움이 될 것이라는 게 참고한 글의 작성자 분의 생각이다.
참고
728x90