티스토리 뷰
npm, npm, yarn 구분하기
문제 상황
Vue나 React 프로젝트를 하다보면 항상 헷갈렸다. 어떨 때는 npm을 쓰고, 언제는 yarn을 쓰고, 또 언제는 npx를 이용하는지. 도대체 3개의 차이가 뭔지 궁금해서 간략하게라도 정리를 해둬야겠다고 생각했다.
npm
node package manager
의 줄임말로 말 그대로 node.js의 package 관리 도구다.
npx
execute npm package binaries
의 줄임말로, npm에 속해 있는 npm 파일 실행 도구다.
npx는 해당 패키지를 실행만 되게 해 주기 때문에 가볍게 쓸 수 있다.
예를 들어 다른 사람의 깃허브 레포지토리에서 패키지를 다운받아 package.json
의 scripts
중 하나를 실행하고 싶을 때 npx와 스크립트를 적으면 패키지 설치를 하지 않고 실행을 할 수 있다.
$ npm run test
$ npx test
yarn
전반적으로 npm과 비슷한 패키지 관리 도구이나 장점은 버전을 어디에서나 같게 만들어 버그를 줄임으로써 보안을 높였다는 점이다.
NPM allowed packages to run code on installation automatically and on-the-fly,
even from their dependencies automatically and on the fly.
While this feature has its conveniences, it raised a few security
concerns – especially considering the no-vetting registry policy on
package submissions which we talked about early on. Conversely,
Yarn only installs from your yarn.lock or package.json files.
More specifically, yarn.lock ensures that the same package is installed throughout
all devices, thus drastically reducing the chance of bugs from having different
versions installed.
npm은 패키지가 설치 될 때 자동으로 코드와 의존성을 실행할 수 있도록 허용했다. 이 특징은 편리하나 안정성의 위험도가 증가했다.
특히 정책 없이 등록하였던 패키지 제출물 부분에서 위험도가 높았다.
반면에 yarn은 yarn.lock이나 package.json으로 부터 설치만 한다.
더 구체적으로 말하자면 yarn.lock은 모든 디바이스에 같은 패키지를 설치하는 것을 보장하여 다른 버전을 설치로 부터 버그가 오는 많은 양을 줄여버렸다.
단점으로는 npm보다 점유율이 낮아 npm에 비해 자료와 문서가 적다는 것이 있다.
결론
npm은 기본적, 보편적인 node.js package manager로 다양한 레퍼런스가 많다.
npx는 npm의 실행 도구로 패키지를 다운 받지 않고 실행만 할 수 있다.
yarn은 npm과 마찬가지로 node.js pakage manager이지만, npm보다 보안이 뛰어나지만 덜 보편적이어서 레퍼런스가 적다.
'Programming > Javascript' 카테고리의 다른 글
자바스크립트 Array.from() 활용하기 (0) | 2021.03.09 |
---|---|
자바스크립트 무작위 정수 뽑기, 배열에서 무작위 원소 뽑기 (0) | 2021.03.01 |
옵셔널 체이닝 (optional chaining) (0) | 2021.01.07 |
?? 연산자 (null 병합 연산자, Nullish coalescing operator) (0) | 2021.01.07 |
String.prototype.padStart()와 String.prototype.padEnd() (0) | 2021.01.07 |
댓글