Curl Up Black Cat

출처: https://www.ryadel.com/en/yarn-vs-npm-pnpm-2019/

NPM 이란?

NPM 은 Node Packaged Manager의 약자입니다. 자바스크립트 패키지 매니저이고 Node.js에서 사용할 수 있는 모듈들을 패키지화하여 모아둔 저장소 역할을 하며 설치/관리를 수행할 수 있는 CLI를 제공합니다.

 

Yarn 이란?

Yarn 도 역시 프로젝트 관리자 역할을 하는 패키지 관리자입니다. 페이스북에서 만든 것으로 npm 서버에 비해 속도가 빠르고 npm 과 사용법이 비슷합니다. 

 

Reference: https://javascript.plainenglish.io/npm-vs-yarn-choosing-the-right-package-manager-a5f04256a93f

 

npm vs Yarn — Choosing the right package manager

Choose the right package manager for your project

javascript.plainenglish.io

 

npm vs Yarn 명령어

출처: https://www.digitalocean.com/community/tutorials/nodejs-npm-yarn-cheatsheet

 

package manager (package-lock.json, yarn.lock)

리액트로 프로젝트를 개발하며 자주 볼 수 있는 npm 을 이용하면 package-lock.json, yarn 을 사용하면 yarn.lock 파일은 왜 자동으로 생성되는 걸까요?

 

패키지 관리를 위해 npm을 사용하든 yarn을 사용하든 해당 프로젝트의 메타 정보는 package.json 파일을 통해 관리가 됩니다. 이 package.json 파일에는 해당 프로젝트가 의존하고 있는 모든 패키지 이름과 버전이 나열되어 있는데요.

일반적으로 쓰이는 패키지들은 dependencies 항목에 명시되고 개발할 때만 필요한 패키지들은 devDependencies 항목에 명시됩니다.

 

개발자가 여려 명이 있는 개발팀에서 프로젝트에 투입되는 시간이 다르다면 각각 사용하는 설치 버전이 다를 수 있습니다. 만약 이렇게 된다면 개발자 A는 제대로 작동하지만 개발자 B에게서는 작동이 안 되는 이슈가 발생될 수 있습니다. 이런 상황은 패키지 매니저에게 패키지 잠금이 지원되지 않던 시절에 매우 골칫거리였던 문제였으며 이것을 해결하기 위한 패키지 잠금이 필요한 것입니다.

 

package-lock.json이나 yarn.lock 과 같은 패키지 잠금 파일에는 프로젝트에 패키지에 최초로 추가될 당시에 버전이 기록됩니다. 함께 개발하는 프로젝트에서 패키지 잠금 역할은 중요합니다. 최초에 setup 하는 개발자가 git에 패키지 잠금 파일을 반드시 올려서 다른 개발자들이 패키지가 꼬이지 않도록 신경 써야 합니다.

 

 

 

+ Recent posts