개발일지

[node.js] npm vs. yarn 본문

javascript/node.js

[node.js] npm vs. yarn

강강강 2021. 11. 22. 10:34

node 패키지를 설치할 때 npm 을 쓰는 사람도 있고 yarn 을 쓰는 사람이 있어 두개의 차이점이 뭔지 궁금하여 찾아본김에 정리해본다.

일단 우리팀은 yarn 을 사용한다. 

 

npm; node package manager

yarn: 페이스북에서 만든 자바스크립트 패키지 매니저 

 

아래와같이 속도, 안정성, 보안성의 차이점이 약간씩 있는것 같다. 

 

1. Performance 속도 

yarn: 다운받는 패키지 데이터를 캐시에 저장해 중복된 데이터는 다운받지 않고 캐시에 저장된 파일을 활용함으로써 이론적으로 npm에 비해 패키지 설치속도가 매우 빠르다. 여러개의 패키지를 설치할 때에는 병렬로 처리하기 때문에 속도가 빠르다.

 

npm: 여러개의 패키지를 설치할 때 순차적으로 설치한다.

 

2. 안정성, 보안성

yarn: yarn.lock 이나 package.json 으로부터 설치만 하여 yarn.lock 은 모든 디바이스에 같은 패키지를 설치하는 것을 보장하기 때문에 버전차이로 생기는 버그를 방지할 수 있다. 

 

npm: 설치될때 자동으로 코드와 의존성을 실핼할 수 있게 허용해준다. 편리한 기능이지만 보장된 정책없이 등록한 패키지가 존재할 수 있다는 점에서 위험도가 높다.

 

** 우리팀은 yarn 이 npm 보다 약간 성능이 빠르고 버전관리가 용이하기때문에 사용하는 것이라고한다. 

 

 

<yarn, npm 다른 명령어>

Command NPM YARN
Install dependencies npm install yarn
Install package npm install [package] yarn add [package]
Install dev package npm install --save-dev [package] yarn add --dev [package]
Uninstall package npm uninstall [package] yarn remove [package]
Uninstall dev package npm uninstall --save-dev [package] yarn remove [package]
Update npm update yarn upgrade
Update package npm update [package]  yarn upgrade [package]
Global install package npm install --global [package] yarn global add [package]
Global uninstall package npm uninstall --global [package] yarn global remove [package]

 

<yarn, npm 같은 명령어>

NPM YARN
npm init yarn init
npm run yarn run
npm test yarn test
npm login (and logout) yarn login (and logout)
npm link yarn link
npm publish yarn publish
npm cache clean yarn cache clean

'javascript > node.js' 카테고리의 다른 글

[node.js] package.json, package-lock.json  (0) 2021.11.22