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