npm vs yarn

5o_hyun·2022년 4월 26일
0
post-thumbnail

npmyarn자바스크립트 패키지매니저이다.

여기서 패키지란 npm에 업로드 된 모듈을 말한다.
다양한 자바스크립트 프로그램이 패키지라는 이름으로 npm에 등록되어 있고, 패키지가 다른 패키지를 사용할 경우 의존 관계를 가지기도 한다. 이러한 패키지들을 사용하기 위해서는 다운로드, 설치, 업데이트, 의존성 관리, 제거 등 복잡한 상황들이 많이 생기는데 패키지 매니저는 이러한 과정들을 자동화하여 편리하고 안전하게 수행할 수 있도록 해준다.

1.npm

npm은 node package manager의 약자로 자바스크립트 언어를 위한 패키지관리자
가장 많이 사용하고있는 패키지 관리 툴
npm이 없었을때는 필요로 하는 기능을 추가하기 위해 직접 작성하거나 다운로드를 하여 사용했다.

npm init : package.json생성
npm install : package.json 파일 및 해당 종속성에 나열된 모든 모듈을 설치

2.yarn

yarn은 npm의 부족한 부분들을 개선하기 위해 Facebook에서 개발되었다. Yarn은 npm이 사용하는 동일한 npm 구조에 의존한다. 따라서 패키지의 레지스트리에 대한 것은 바뀌지 않았고, 설치 절차가 바뀌었다고 생각하면 된다.

npm vs yarn 어떤차이가 있을까?

1.speed : 옛날에는 yarn이 빨라서 썼지만 이제는 차이가 없다

2.security : npm은 의존관계를 가지는 다른 패키지들이 포함되어 깔린다. 이는 이런부분이 편리하나 보안문제에 취약점이 있다.
yarn은 yarn.lock이나 package.json에 있는거만 설치를한다.
따라서 yarn이 보안성이 좀 더 좋다.

3.패키지잠금파일 : npm은 package-lock.json, yarn은 yarn.lock파일을 패키지 잠금파일로 사용한다
why? 같은 버전을 깔아도 각기 다른 기기에서 다른버전으로 깔린다. 이런것을 예방하기위해 패키지잠금을 한다.

명령어에도 조금씩 차이가 있는데, 패키지를 추가하고 싶을 때 npm은 npm install <package>, yarn은 yarn add <package> 명령어를 사용한다. 패키지 제거에 있어서도 npm에서는 npm uninstall/rm <pacakge>를 사용하지만, yarn은 yarn remove <package> 명령을 통해 수행한다.


속도면에서도 별 차이가 없어졌고, yarn은 보안성 부분에서 더 좋으나 디스크용량을 좀 더 잡아먹는 단점이 있기때문에
각자의 장단점이 있어 편한대로 쓰면 될거같다

참고자료
https://seogeurim.tistory.com/12?category=981579

profile
학생 점심 좀 차려

0개의 댓글