티스토리 뷰

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.jsonscripts중 하나를 실행하고 싶을 때 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보다 보안이 뛰어나지만 덜 보편적이어서 레퍼런스가 적다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함