반응형
1. 병렬 설치 여부에 따른 속도 차이
- npm : 순차적 처리
- yarn : 병렬 처리 -> 퍼포먼스, 속도 향상
- 속도 차이: yarn > npm
2. Automatic Lock file generation(자동 lock 파일 생성)
- 두 패키지 모두 프로젝트의 종속성과 버전 번호를 추적한다.
- json 파일 종속성을 설치할 때마다 종속성 버전이 버전 번호 앞에 ^로 시작할 수 있다. 즉, 다른 시스템에 모든 패키지를 설치하거나 설치할 명령을 수동으로 실행할 때마다 패키지 관리자가 릴리즈된 최신 버전을 찾는다. -> 최신 버전이 있는 경우 패키지에 언급된 버전이 아니라 최신 버전으로 자동 설치된다.
- 패키지를 자동으로 변경하지 않으려면 두 가지 방법이 있는데,
- 잠금 파일을 생성하여 한 번에 특정 버전만 설치되기
- 패키지 파일에 ^을 제거하기
종속성이 추가되면,
- npm : npm shrinkwrap 명령어로 lock 파일을 생성함
- yarn : yarn.lock 파일을 자동으로 추가함
- 차이점 : npm이 기본적으로 lock파일을 생성하지 않지만, yarn은 항상 yarn.lock 파일을 생성하고 업데이트 함
3. 보안
- npm : 다른 패키지를 즉시 포함시킬 수 있는 코드를 자동으로 실행하므로, 보안 시스템에 여러 취약성이 발생함
- yarn : yarn.lock 또는 package.json 파일에 있는 파일만 설치함
- 보안 강도: yarn > npm
4. 명령어
NPM과 YARN에서 다른 명령어
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] |
NPM과 YARN에서 같은 명령어
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 |
참고 자료
https://developer0809.tistory.com/128
반응형