Yarn: ๊ฐ„์ ‘ ์ข…์†์„ฑ์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์— ๋งŒ๋“  2017๋…„ 11์›” 23์ผ  ยท  45์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: yarnpkg/yarn

๊ธฐ๋Šฅ ์„ ์š”์ฒญํ•˜๊ฑฐ๋‚˜ ๋ฒ„๊ทธ ๋ฅผ ๋ณด๊ณ ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

ํŠน์ง•.

ํ˜„์žฌ ํ–‰๋™์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?
yarn upgrade ๋Š” ๊ฐ„์ ‘ ์ข…์†์„ฑ์„ ๋ฌด์‹œํ•˜๋ฏ€๋กœ ์‚ฌ์šฉ์ž๊ฐ€ yarn.lock์—์„œ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ œ๊ฐ€ ๋†“์นœ ๋ถ€๋ถ„์ด ์žˆ๋‹ค๋ฉด ๋ง์”€ํ•ด์ฃผ์„ธ์š”.

ํ˜„์žฌ ๋™์ž‘์ด ๋ฒ„๊ทธ์ธ ๊ฒฝ์šฐ ์žฌํ˜„ ๋‹จ๊ณ„๋ฅผ ์ œ๊ณตํ•˜์‹ญ์‹œ์˜ค.

  • ์ƒˆ๋กœ์šด ๋นˆ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐ€์ •ํ•˜๊ณ  yarn add [email protected] ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    • 2๊ฐœ์˜ ๊ฐ„์ ‘ ์ข…์†์„ฑ is-alphabetical ๋ฐ is-decimal ๊ฐ€ ์„ค์น˜๋˜๊ณ  yarn.lock์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

    • is-alphabetical ์˜ ์ตœ์‹  ๋ฒ„์ „์€ ํ˜„์žฌ 1.0.1์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์ƒˆ ๋ฒ„์ „, ์˜ˆ๋ฅผ ๋“ค์–ด 1.0.2๊ฐ€ ๋ฆด๋ฆฌ์Šค๋œ ๊ฒฝ์šฐ(ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด 2๊ฐœ์˜ ํ…Œ์ŠคํŠธ ํŒจํ‚ค์ง€๋ฅผ ์ง์ ‘ ๋ฆด๋ฆฌ์Šคํ•˜๊ฑฐ๋‚˜ is-alphabetical ๋ฅผ 1.0์œผ๋กœ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. .0 in yarn.lock , * yarn.lock ์„ ์ง์ ‘ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์€ ์ผ๋ฐ˜ ์ž‘์—…์ด ์•„๋‹ˆ๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค *)

  • ๋‹ค์Œ ์ค‘ ์–ด๋–ค ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋“  yarn ๋Š” ํ•ญ์ƒ All of your dependencies are up to date ๋ผ๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค.

    • ์›์‚ฌ ์—…๊ทธ๋ ˆ์ด๋“œ๋Š” ์•ŒํŒŒ๋ฒณ์ˆœ

    • ์›์‚ฌ ์—…๊ทธ๋ ˆ์ด๋“œ ๋Œ€ํ™”ํ˜•

    • ์›์‚ฌ ์—…๊ทธ๋ ˆ์ด๋“œ ๋Œ€ํ™”ํ˜• is-์•ŒํŒŒ๋ฒณ

์˜ˆ์ƒ๋˜๋Š” ๋™์ž‘์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?
yarn upgrade ๋Š” ๊ฐ„์ ‘ ์ข…์†์„ฑ๋„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

node.js, ์›์‚ฌ ๋ฐ ์šด์˜ ์ฒด์ œ ๋ฒ„์ „์„ ์–ธ๊ธ‰ํ•˜์‹ญ์‹œ์˜ค.
๋…ธ๋“œ 8.9.0
์‹ค 1.3.2
OSX 10.12.6

cat-feature

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ด ๊ธฐ๋Šฅ ์š”์ฒญ์— ๋Œ€ํ•ด +1์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ ์ค‘๊ฐ„์— ํŠน์ • ๊ฐ„์ ‘ ์ข…์†์„ฑ์„ ์ˆ˜๋™์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•ด์•ผ ํ•˜๋Š” ๋‚˜์™€ ๊ฐ™์€ ๋ฐ”๋ณด๋ฅผ ์œ„ํ•œ ์˜ˆ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ช…์‹œ์  ์ข…์†์„ฑ jsonwebtoken ๊ฐ€ ์ทจ์•ฝํ•œ jws=3.1.4 ์— ๋Œ€ํ•œ ์•”์‹œ์  ์ข…์†์„ฑ jws^3.0.0 ์„ ํ•ด๊ฒฐํ–ˆ์œผ๋ฉฐ ๋Œ€์‹  ํŒจ์น˜๋œ 3.1.5 ๋กœ ํ•ด๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์•„๋ž˜์˜ yarn.lock์—์„œ jws ํ•ญ๋ชฉ์„ ์‚ญ์ œํ•˜๊ณ  $#$ yarn ๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค. ๊ฐ„์ ‘์ ์ธ ์ข…์†์„ฑ๊ณผ ์˜ํ–ฅ์„ ๋ฐ›๋Š” ํŒจํ‚ค์ง€๋Š” ๋‹ค๋ฅธ ๊ฒƒ์„ ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š๊ณ  ์—…๋ฐ์ดํŠธ๋ฉ๋‹ˆ๋‹ค(์ตœ์†Œํ•œ ์›์‚ฌ v1.3์—์„œ).

jws@^3.0.0, jws@^3.1.4:
  version "3.1.4"
  resolved "https://registry.npmjs.org/jws/-/jws-3.1.4.tgz#f9e8b9338e8a847277d6444b1464f61880e050a2"
  dependencies:
    base64url "^2.0.0"
    jwa "^1.1.4"
    safe-buffer "^5.0.1"

ํŽธ์ง‘: ๊ตฌ๋‘์ 

๋ชจ๋“  45 ๋Œ“๊ธ€

@chinesedfan yarn upgrade-interactive ์‚ฌ์šฉํ•ด ๋ณด์…จ์Šต๋‹ˆ๊นŒ?

@milesj ์˜ˆ, ๊ฒฐ๊ณผ๋Š” ๋™์ผํ•˜๋ฉฐ ๋ฌธ์ œ ์„ค๋ช…์˜ ์žฌํ˜„ ๋‹จ๊ณ„๋„ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด๋Š” yarn add [email protected] ์ด package.json์„ ์š”์ฒญํ•œ ๋Œ€๋กœ _exactly_ ๋ฒ„์ „ 1.0.0 ๋กœ ์„ค์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

yarn upgrade ๋Š” package.json semver ๋ฒ”์œ„๋ฅผ ์กด์ค‘ํ•˜๋ฉฐ ์ •ํ™•ํžˆ ๋ฒ„์ „ 1.0.0์„ ์ง€์ •ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ๋ฒ„์ „์œผ๋กœ์˜ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์ œ์•ˆํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ช‡ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • yarn upgrade --latest ๋Š” semver ๋ฒ”์œ„๋ฅผ ๋ฌด์‹œํ•˜๊ณ  ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์—์„œ latest ๋กœ ํƒœ๊ทธ๊ฐ€ ์ง€์ •๋œ ํ•ญ๋ชฉ์„ ๋ด…๋‹ˆ๋‹ค.
  • ^1.0.0 ์™€ ๊ฐ™์€ ๋ฒ„์ „ ๋ฒ”์œ„๋ฅผ ํ—ˆ์šฉํ•˜๋„๋ก package.json์„ ๋ณ€๊ฒฝํ•œ ๋‹ค์Œ yarn upgrade (๋ณ€๊ฒฝ๋œ ๋ฒ”์œ„์— ๋Œ€ํ•œ ์ž ๊ธˆ ํŒŒ์ผ์„ ์—…๋ฐ์ดํŠธํ•˜๋ ค๋ฉด ๋จผ์ € yarn install ํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Œ)
  • yarn upgrade [email protected] ๋˜๋Š” yarn upgrade is-alphanumerical@^1.0.0 ์™€ ๊ฐ™์ด $ upgrade ์— ๋ฒ„์ „์„ ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

ํŽธ์ง‘ํ•˜๋‹ค:

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๋ฐฉ๊ธˆ ๋‹ค๋ฅธ ํŒจํ‚ค์ง€ ์ด๋ฆ„์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค. alphanumerical ์™€ alphabetical ๋Š” ์–ผํ• ๋˜‘๊ฐ™์•„ ๋ณด์ž…๋‹ˆ๋‹ค :)

๋งž์Šต๋‹ˆ๋‹ค. is-alphanumerical ์— ๋Œ€ํ•œ ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ข…์†์„ฑ ํŠธ๋ฆฌ๋Š” ์ „์ด ์ข…์†์„ฑ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๋” ๊นŠ์ด ํƒ์ƒ‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

--force ํ”Œ๋ž˜๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ํ•˜์œ„ ์ข…์†์„ฑ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋‹น์‹ ์ด ์˜ณ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค yarn remove is-alphanumerical ๋ฐ yarn add is-alphanumerical ์™ธ์—๋Š” ์‰ฌ์šด ๋ฐฉ๋ฒ•์ด ์—†์Šต๋‹ˆ๋‹ค.

@rally25rs ๋‹ต๋ณ€ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! 2๊ฐœ์˜ ๊ฒฝ์šฐ๋ฅผ ๋” ํ…Œ์ŠคํŠธํ–ˆ์Šต๋‹ˆ๋‹ค.

  • yarn upgrade is-alphabetical --force ๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • yarn upgrade is-alphanumerical ๋Š” ์ด๋ฏธ ์ตœ์‹  ๋ฒ„์ „์ด๋ผ๋„ ๋ชจ๋“  ํ•˜์œ„ ์ข…์†์„ฑ์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค.

    • ๊ทธ๋Ÿฌ๋‚˜ ์ง€์ •๋œ ํ•˜์œ„ ์ข…์†์„ฑ์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ์—ฌ์ „ํžˆ ํŽธ๋ฆฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์˜ˆ, ์ด๊ฒƒ์€ ํ˜„์žฌ ์›์‚ฌ์˜ ์ฃผ์š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์ด๋ฏธ #2394์—์„œ ๋…ผ์˜ ์ค‘์ž…๋‹ˆ๋‹ค.

๋ณต์ œ #2394

๋‹ค์‹œ ์—ด์–ด์ฃผ์„ธ์š”: ์ค‘๋ณต๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

2394๋Š” meck-test-bb ํŒจํ‚ค์ง€ ๋ณต์ œ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค(๊ฐ„์ ‘ ์ข…์†์„ฑ):

๋‚˜๋Š” meck-test-bb์˜ ์‚ฌ๋ณธ์„ ๋‘ ๊ฐœ ์–ป์—ˆ๋‹ค

์ด ๋ฌธ์ œ๋Š” ๊ฐ„์ ‘์ ์ธ ์ข…์†์„ฑ์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

@rally25rs ํ•‘์„ ํ•˜๋Š” ๊ฒƒ์„ ์šฉ์„œํ•˜์„ธ์š”.

@rally25rs , ์ œ๋ฐœ, ์ค‘๋ณต๋˜์ง€ ์•Š๋Š” ๋‘ ๊ฐ€์ง€ ๋ฌธ์ œ๋ฅผ ๋ชจ๋‘ ์ข…๋ฃŒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ž˜๋ชป๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐ„์ ‘ ์˜์กด์„ฑ์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ์„ ์ฃผ์‹ญ์‹œ์˜ค!

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ฌธ์ œ์— ๋Œ€ํ•ด ์•ฝ๊ฐ„์˜ ํ˜ผ๋ž€์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์›๋ž˜ 2394๊ฐ€ --deep ํ”Œ๋ž˜๊ทธ ๋˜๋Š” ์ด์™€ ์œ ์‚ฌํ•œ ๊ฒƒ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ „์ด์  dep๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์š”๊ตฌํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ฌธ์ œ๋ฅผ ๊ทธ๊ฒƒ์˜ ์ค‘๋ณต์œผ๋กœ ํ‘œ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜์ค‘์— 2394๋ฅผ ๋‹ค์‹œ ์ฝ์€ ํ›„ ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ๋‚ด๊ฐ€ ์›๋ž˜ ์ƒ๊ฐํ–ˆ๋˜ ๊ฒƒ๊ณผ ๊ฐ™์€ ๋ณต์ œ๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ๊ฒƒ์— ๊ด€ํ•œ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ด ๊ธฐ๋Šฅ ์š”์ฒญ์— ๋Œ€ํ•ด +1์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ ์ค‘๊ฐ„์— ํŠน์ • ๊ฐ„์ ‘ ์ข…์†์„ฑ์„ ์ˆ˜๋™์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•ด์•ผ ํ•˜๋Š” ๋‚˜์™€ ๊ฐ™์€ ๋ฐ”๋ณด๋ฅผ ์œ„ํ•œ ์˜ˆ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ช…์‹œ์  ์ข…์†์„ฑ jsonwebtoken ๊ฐ€ ์ทจ์•ฝํ•œ jws=3.1.4 ์— ๋Œ€ํ•œ ์•”์‹œ์  ์ข…์†์„ฑ jws^3.0.0 ์„ ํ•ด๊ฒฐํ–ˆ์œผ๋ฉฐ ๋Œ€์‹  ํŒจ์น˜๋œ 3.1.5 ๋กœ ํ•ด๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์•„๋ž˜์˜ yarn.lock์—์„œ jws ํ•ญ๋ชฉ์„ ์‚ญ์ œํ•˜๊ณ  $#$ yarn ๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค. ๊ฐ„์ ‘์ ์ธ ์ข…์†์„ฑ๊ณผ ์˜ํ–ฅ์„ ๋ฐ›๋Š” ํŒจํ‚ค์ง€๋Š” ๋‹ค๋ฅธ ๊ฒƒ์„ ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š๊ณ  ์—…๋ฐ์ดํŠธ๋ฉ๋‹ˆ๋‹ค(์ตœ์†Œํ•œ ์›์‚ฌ v1.3์—์„œ).

jws@^3.0.0, jws@^3.1.4:
  version "3.1.4"
  resolved "https://registry.npmjs.org/jws/-/jws-3.1.4.tgz#f9e8b9338e8a847277d6444b1464f61880e050a2"
  dependencies:
    base64url "^2.0.0"
    jwa "^1.1.4"
    safe-buffer "^5.0.1"

ํŽธ์ง‘: ๊ตฌ๋‘์ 

@alex-thewsey-ibm, ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

์›์‚ฌ v1.7์—์„œ ์ž‘์—…ํ–ˆ์Šต๋‹ˆ๋‹ค.

ty, ์ž‘์—… ์›์‚ฌ 1.9.2

๋‹จ์ผ ์ข…์†์„ฑ์„ ์œ„ํ•œ ๊ฒฝ์šฐ์—๋„ ์„ ํƒ์  ์ข…์†์„ฑ resolutions ์œผ๋กœ ์›์‚ฌ๋ฅผ ์กฐ๊ธˆ์”ฉ ์ด๋™ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํžŒํŠธ๋ฅผ ์ฃผ์‹  @remolueoend ์—๊ฒŒ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!
https://yarnpkg.com/lang/en/docs/selective-version-resolutions/

๋ฌธ์„œ์—์„œ:

{
  "name": "project",
  "version": "1.0.0",
  "dependencies": {
    "left-pad": "1.0.0",
    "c": "file:../c-1",
    "d2": "file:../d2-1"
  },
  "resolutions": {
    "d2/left-pad": "1.1.1",
    "c/**/left-pad": "1.1.2"
  }
}

์‚ฌ์šฉ์ž์—๊ฒŒ yarn.lock https://github.com/postcss/autoprefixer/issues/1184 ์—์„œ caniuse-lite ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ์•ˆํ•˜๋ ค๋ฉด Autoprefixer์—์„œ ์ด ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์œ„ ์ข…์†์„ฑ์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ธฐ ์œ„ํ•ด yarn upgrade caniuse-lite browserslist ๋ฅผ ์˜ˆ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ํ•˜์ง€๋„ ์•Š์•˜๊ณ  ์ข…์†์„ฑ์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ์—…๊ทธ๋ ˆ์ด๋“œํ•  ์ˆ˜ ์—†๋‹ค๋Š” ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋„ ํ‘œ์‹œํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๊ด€๋ จ ์ž ๊ธˆ ํŒŒ์ผ ํ•ญ๋ชฉ์„ ์‚ญ์ œํ•œ ๋‹ค์Œ @alex-thewsey-ibm์ด ์ œ์•ˆํ•œ ๋Œ€๋กœ yarn ๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•˜๋ฉด ์ฆ‰๊ฐ์ ์ธ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์‹ค์— tni ๊ธฐ๋Šฅ์ด ์—†๋Š” ๊ฒƒ์ด ์ด์ƒํ•ฉ๋‹ˆ๋‹ค. ์ €๋Š” ์›์‚ฌ(๋ฐ npm)๋ฅผ ์ฒ˜์Œ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ์ด๋ฅผ ์ˆ˜ํ–‰ํ•  ๋ฐฉ๋ฒ•์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ์Šค๋ ˆ๋“œ์—์„œ ์•„๋ฌด๋„ ๋ชจ๋ฅด๋Š” ๋ช…ํ™• ํ•˜์ง€ ์•Š์€ ๋ฐฉ๋ฒ•์ด ์žˆ๋Š”์ง€ ๋˜๋Š” ์‹ค์ œ๋กœ ๋ฐฉ๋ฒ•์ด ์—†๋Š”์ง€ ์•„์ง ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

package.json์— ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๊ณ  lockfile์˜ ์ „์ด์ /๊ฐ„์ ‘์  ์ข…์†์„ฑ์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์ •๋ง ์—†๋‹ค๋ฉด... ์›์‚ฌ ์‚ฌ์šฉ์ž๊ฐ€ ๊ทธ๊ฒƒ ์—†์ด๋Š” ์–ด๋–ป๊ฒŒ ํ•˜๋Š”์ง€ ์ดํ•ด๊ฐ€ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์˜ˆ๊ธฐ์น˜ ์•Š์€ ๋™์ž‘์ž…๋‹ˆ๋‹ค IMO - ์ตœ๊ทผ์— yarn upgrade [email protected] ๋กœ lodash๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ ์ผ์‹œ์ ์ธ ์ข…์†์„ฑ์— ๋Œ€ํ•ด ์—ฌ์ „ํžˆ ์—…๋ฐ์ดํŠธ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์—ฌ์ „ํžˆ ๋ชจ๋“  major (^4.XX) ๋ฐ patch (~4.17.X) ๋ฒ„์ „์ด ์ด์ „ ๋ฒ„์ „์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ƒํƒœ๋กœ ๋‚จ์•„ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์€ yarn.lock ๋ฅผ ์ˆ˜๋™์œผ๋กœ ํŽธ์ง‘ํ•œ ๋‹ค์Œ yarn upgrade ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํ†ตํ•ฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ๋„๊ตฌ์—์„œ ์กฐ๊ธˆ ๋” ๋‚˜์€ ๊ฒƒ์„ ๊ธฐ๋Œ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์Šน์ธ๋œ ๋ฒ„๊ทธ ๋˜๋Š” ์›์‚ฌ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ณด์ˆ˜์ ์ด๋ฉฐ ์ˆ˜๋™์œผ๋กœ yarn.lock ๋ฅผ ํŽธ์ง‘ํ•˜๊ฑฐ๋‚˜ ์ผ๋ถ€ ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

@Machiaweliczny ์™€ ๊ฐ™์€ ๋ณด์•ˆ ๊ฒฝ๊ณ ๋ฅผ ํ•ด๊ฒฐํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์‘๋‹ต์„ฑ์ด ๋†’์€ ํ”„๋กœ์ ํŠธ์˜ ๊ฒฝ์šฐ์—๋„ ์ˆ˜์ • ๋ฐ ๋ฆด๋ฆฌ์Šค๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋ฐ ์ง€์—ฐ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์‹ค์ œ๋กœ ์ด๊ฒƒ์€ ๊ฐ„์ ‘ ์ข…์†์„ฑ์˜ ๋ณด์•ˆ ๋ฌธ์ œ์— ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉฐ yarn.lock ๋ฅผ ํŽธ์ง‘ํ•˜๋Š” ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ํšจ๊ณผ์ ์ด๊ธฐ๋Š” ํ•˜์ง€๋งŒ ์‹ค๋ง์Šค๋Ÿฝ๊ณ  ์ž๋™ํ™”ํ•˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ์ด์œ ๋กœ ์ด๊ฒƒ์ด ๊ธฐ๋ณธ ๋™์ž‘์ด ์•„๋‹Œ ๊ฒฝ์šฐ Yarn์ด ๊ฐ„์ ‘ ์ข…์†์„ฑ์„ ๋”ฐ๋ฅด๋„๋ก ํ•˜๋Š” --include-indirect ์™€ ๊ฐ™์€ ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์˜ต์…˜์ด ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์™œ yarn upgrade [an indirect dependency] ๊ฐ€ yarn.lock์„ ํ•„์š” ์—†์ด ์ข…์†์„ฑ ํŠธ๋ฆฌ์—์„œ ํ—ˆ์šฉํ•˜๋Š” ์ตœ์‹  ๋ฒ„์ „์˜ ๊ฐ„์ ‘ ์ข…์†์„ฑ์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜์ง€ ์•Š๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ถ”๊ฐ€ ์˜ต์…˜. ์ง€๊ธˆ์€ ๊ทธ๋ƒฅ ๋…ธ์˜ต์ธ ๊ฒƒ ๊ฐ™์€๋ฐ?

๊ทธ๋Ÿฌ๋‚˜ ๋‚ด๊ฐ€ ๋งŒ์กฑํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๋‚ด package.json์— resolutions ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. lodash ๊ฐ€ ๊ฐ„์ ‘ ์ข…์†์„ฑ์ด๊ณ  ๋ณด์•ˆ ์ทจ์•ฝ์ ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด >= 4.7.13์ด์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์œผ๋ฉด package.json์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  "resolutions": {
    "lodash": ">= 4.17.13"
  }

๊ทธ๋Ÿฐ ๋‹ค์Œ yarn install ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ํ•ด๋‹น ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๋„๋ก yarn.lock ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ฑฐ๋‚˜ ๊ฐ„์ ‘ ์ข…์†์„ฑ๊ณผ ์ถฉ๋Œํ•˜์—ฌ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ๋ถˆํ‰ํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์‹ค์ œ๋กœ ์ œ ๊ฒฝ์šฐ์— ๊ฝค ์ž˜ ์ž‘๋™ํ–ˆ๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. "ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•"์ด ์•„๋‹ˆ๋ผ ์˜๋„ํ•œ ์†”๋ฃจ์…˜์ธ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜๋„ ๋ฐœ๊ฒฌํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์ด ์ข€ ๊ฑธ๋ ธ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์ด ๋ณดํŽธ์ /์˜ฌ๋ฐ”๋ฅธ ํ•ด๊ฒฐ์ฑ…์ธ์ง€ ๋˜๋Š” ์–ด๋–ค ๊ฒฝ์šฐ์—๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์‹ ํ•  ๋งŒํผ ์ถฉ๋ถ„ํžˆ ์ดํ•ดํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ๊ฐ„์ ‘ ์ข…์†์„ฑ์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” '์˜ฌ๋ฐ”๋ฅธ' ์†”๋ฃจ์…˜์ด๋ผ๋ฉด ์ฐพ๊ธฐ๊ฐ€ ๋‹ค์†Œ ์–ด๋ ค์› ์Šต๋‹ˆ๋‹ค.

์—…๋ฐ์ดํŠธํ•˜๋ ค๋Š” ์ „์ด์  dep๋ฅผ yarn์ด ์„ค์น˜ํ•˜์ง€ ์•Š๊ณ  package.json ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ปค๋ฐ‹ํ•˜์ง€ ์•Š๊ณ  yarn.lock๋งŒ ์„ค์น˜ํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์—…๋ฐ์ดํŠธํ•˜๋ ค๋Š” ์ „์ด์  dep๋ฅผ yarn์ด ์„ค์น˜ํ•˜์ง€ ์•Š๊ณ  package.json ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ปค๋ฐ‹ํ•˜์ง€ ์•Š๊ณ  yarn.lock๋งŒ ์„ค์น˜ํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๋‚˜๋Š” ๊ทธ๊ฒƒ์ด (ํ•ญ์ƒ?) ์ž‘๋™ํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š๋Š”๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๋‹จ์ผ ๋ฒ„์ „์ด ๋ชจ๋“  ๊ด€๋ จ semver ๋ฒ”์œ„๋ฅผ ๋งŒ์กฑํ•˜๋”๋ผ๋„ ์›์‚ฌ๋Š” ๋™์ผํ•œ ํŒจํ‚ค์ง€์˜ ์—ฌ๋Ÿฌ ๋ฒ„์ „์„ ํ–‰๋ณตํ•˜๊ฒŒ ์„ค์น˜ํ•  ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋”ฐ๋ผ์„œ ์›ํ•˜๋Š” ๋ฒ„์ „์ด ์„ค์น˜๋˜์ง€๋งŒ ์›ํ•˜์ง€ ์•Š๋Š” ๋ฒ„์ „์€ ์ œ๊ฑฐ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@djmitch ๋งž์•„์š”. ์˜ˆ์ƒ ๋ฒ”์œ„ ๋‚ด์—์„œ ๋ฒ„์ „์„ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด์ƒ์ ์ด์ง€๋Š” ์•Š๊ณ  ์•ฝ๊ฐ„ ์ง€๋ฃจํ•˜์ง€๋งŒ ํ˜„์žฌ๋กœ์„œ๋Š” ๊ฐ€๋Šฅํ•œ ์ž„์‹œ๋ฐฉํŽธ์ž…๋‹ˆ๋‹ค.

@djmitche ์‹ค์ œ๋กœ ์ด๊ฒƒ์€ ๊ฐ„์ ‘ ์ข…์†์„ฑ์˜ ๋ณด์•ˆ ๋ฌธ์ œ์— ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉฐ yarn.lock ์„ ํŽธ์ง‘ํ•˜๋Š” ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ํšจ๊ณผ์ ์ด๊ธฐ๋Š” ํ•˜์ง€๋งŒ ์‹ค๋ง์Šค๋Ÿฝ๊ณ  ์ž๋™ํ™”ํ•˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์•ฝ๊ฐ„ ๋” ์ž๋™ํ™” ๊ฐ€๋Šฅํ•œ ๋˜ ๋‹ค๋ฅธ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

yarn remove is-alphanumerical
yarn add is-alphanumerical

PR ์„ค๋ช…์˜ ์˜ˆ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ตœ์ƒ์œ„ ์ˆ˜์ค€ dep๋ฅผ ์ œ๊ฑฐํ•œ ๋‹ค์Œ is-alphanumerical ๋กœ ์ง€์ •๋œ ๋ฒ”์œ„(์˜ˆ: ์บ๋Ÿฟ ๋ฒ”์œ„)์— ๋”ฐ๋ผ ๋ชจ๋“  ์ตœ์‹  ํ•˜์œ„ ์„ค๋ช…์„ ๊ฐ€์ ธ์˜ค๋Š” ๋‹ค์‹œ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. . ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ƒˆ ์ž ๊ธˆ ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

๋ถ€์ž‘์šฉ์€ ์ด์ƒ์ ์ด์ง€ ์•Š์€ ๋ชจ๋“  ํ•˜์œ„ ์„ค๋ช…์„ ์—…๋ฐ์ดํŠธํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. sub-dep A์˜ ๋ณด์•ˆ ๋ฌธ์ œ์˜ ๊ฒฝ์šฐ sub-dep A ๋งŒ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

๋ณด์•ˆ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์„œ๋ธŒ ๋Ž A๋ฅผ ์ง์ ‘ ๋Ž์œผ๋กœ ์ถ”๊ฐ€ํ•˜๋Š” ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ํ˜ผ๋ž€(ํŒจํ‚ค์ง€๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ)๊ณผ ์œ ์ง€ ๊ด€๋ฆฌ ๋ถ€๋‹ด์„ ์ผ์œผํ‚ค๊ธฐ ๋•Œ๋ฌธ์— ๋” ๋‚˜์ฉ๋‹ˆ๋‹ค.

์›์‚ฌ ์ œ๊ฑฐ๋Š” ์˜์ˆซ์ž
์›์‚ฌ ์ถ”๊ฐ€๋Š” ์˜์ˆซ์ž

์ด๊ฒƒ์€ ์‹ค์ œ๋กœ ์ข…์†์„ฑ์„ ์—…๋ฐ์ดํŠธํ•˜๋Š” ์œ ์ผํ•œ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์˜ค๋Š˜ ์šฐ๋ฆฌ๊ฐ€ 1๋…„ ์ „์— 1.1.0 ๋กœ ์—…๋ฐ์ดํŠธ๋œ ํŒจํ‚ค์ง€์˜ 1.0.0 ๋ฒ„์ „์— ๊ฐ‡ํ˜€ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋˜ ํŒจํ‚ค์ง€๋Š” ^1.0.0 ๋ฅผ ์‚ฌ์šฉํ–ˆ๊ณ  ์šฐ๋ฆฌ๊ฐ€ ๊ทธ ํŒจํ‚ค์ง€๋ฅผ "์—…๊ทธ๋ ˆ์ด๋“œ"ํ•  ๋•Œ๋งˆ๋‹ค ์˜์กด์„ฑ์˜ ์ƒˆ๋กœ์šด 1.1.0 ๋ฒ„์ „์„ ์„ ํƒํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ ์ด์œ ๋ฅผ ์กฐ์‚ฌํ•˜๋Š๋ผ ํ•˜๋ฃจ๋ฅผ ๋‚ญ๋น„ํ•˜์ง€ ์•Š๊ณ  1๋…„ ์ „์— ์ˆ˜์ •ํ–ˆ์–ด์•ผ ํ•˜๋Š” ์šฐ๋ฆฌ ์ œํ’ˆ์— ์กฐ์šฉํžˆ ์‹คํŒจํ•˜๋Š” ๊ฝค ๋‚˜์œ ๋ฒ„๊ทธ๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ๋ฐํ˜€์กŒ์Šต๋‹ˆ๋‹ค.

์ˆ˜๋™์œผ๋กœ yarn.lock์„ ํŽธ์ง‘ํ•˜๊ฑฐ๋‚˜ ํŒจํ‚ค์ง€๋ฅผ ์ œ๊ฑฐํ•œ ๋‹ค์Œ ๋‹ค์‹œ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์„ ํƒ์  ํ•ด๊ฒฐ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ฐ„์ ‘ ์ข…์†์„ฑ์„ ์—…๋ฐ์ดํŠธํ•˜๋Š” "๋ฐฉ๋ฒ•"์ด๋ผ๋Š” ๊ฒƒ์ด ๋ฏฟ๊ธฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

IMO, yarn upgrade ๋Š” ๊ฐ„์ ‘์ ์ธ ์ข…์†์„ฑ์„ ์ตœ์‹  ์Šน์ธ๋œ semver ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•˜๋ฏ€๋กœ ํŒจํ‚ค์ง€๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค. ๋‚ด ๋ง์€, semver ๋ฒ”์œ„์— ์ค‘๋‹จ์ด ์žˆ์œผ๋ฉด ๊ฐ„์ ‘ ์ข…์†์„ฑ์„ ์—…๋ฐ์ดํŠธํ•˜๋ฏ€๋กœ ํ•ญ์ƒ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฅผ ์œ„ํ•ด ์ผ์ข…์˜ ์™ธ๋ถ€ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ๋„์›€์ด ๋ ๊นŒ์š”? ์ฃผ์–ด์ง„ ํŒจํ‚ค์ง€์— ๋Œ€ํ•œ ๋ชจ๋“  yarn.lock ํ•ญ๋ชฉ์„ ์ œ๊ฑฐํ•œ ๋‹ค์Œ ์›์‚ฌ๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ• ๊นŒ์š”?

์ด๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฐ„๋‹จํ•œ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค: https://gist.github.com/pftg/fa8fe4ca2bb4638fbd19324376487f42

๊ด€๋ฆฌ์ž ์ค‘ ํ•œ ๋ช…์ด ๋ ˆ์ด๋ธ”์„ cat-feature ์—์„œ cat-bug ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๊ด€๋ฆฌ์ž ์ค‘ ํ•œ ๋ช…์ด cat-feature์—์„œ cat-bug๋กœ ๋ ˆ์ด๋ธ”์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์™œ์š”? ์ด๊ฒƒ์€ ๋ฒ„๊ทธ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์„ค๊ณ„๋œ ๋Œ€๋กœ์ž…๋‹ˆ๋‹ค. yarn upgrade ๋Š” ์ „์ด ์ข…์†์„ฑ์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์›๋ž˜ ์—ด๋ฆฐ "๋ฌธ์ œ"๋Š” ๊ธฐ๋Šฅ ์š”์ฒญ์œผ๋กœ ๋ ˆ์ด๋ธ”์ด ์ง€์ •๋ฉ๋‹ˆ๋‹ค.

๋‚ด๋ถ€์ ์œผ๋กœ upgrade ๋Š” yarn outdated ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ตœ์‹  ๋ฒ„์ „๊ณผ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ๋ฒ„์ „์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. outdated ๋Š” ์ง์ ‘์ ์ธ ์ข…์†์„ฑ๋งŒ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ํ‹€๋ฆด ์ˆ˜๋„ ์žˆ๊ณ  ๋ณ€๊ฒฝ๋˜์—ˆ์„ ์ˆ˜๋„ ์žˆ์ง€๋งŒ npm upgrade yarn upgrade ๊ฐ€ ๋งˆ์ง€๋ง‰์œผ๋กœ ์žฌ์ž‘์—…๋œ 3๋…„ ์ „ ํ˜„์žฌ npm upgrade๋Š” ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ „์ด์  dep๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜์‹ญ์‹œ์˜ค. (๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ, ์ˆ˜๋…„์— ๊ฑธ์ณ ๋ณ€๊ฒฝ๋˜์—ˆ์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ npm์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•ด ๋„ˆ๋ฌด ์ตœ์‹  ์ •๋ณด๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค).


๋ˆ„๊ตฌ๋‚˜ ์ด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด PR์„ ์ œ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ์ด๋ฉฐ ๊ธฐ์—ฌํ•˜๋Š” ๊ฒƒ์€ ์ปค๋ฎค๋‹ˆํ‹ฐ ์ „์ฒด์— ๋‹ฌ๋ ค ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ ์š”์ฒญ์€ ์ˆ˜๋…„ ๋™์•ˆ ์—ด๋ ค ์žˆ์—ˆ์ง€๋งŒ ์•„๋ฌด๋„ ๊ทธ๊ฒƒ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๋‚˜์„œ์ง€ ์•Š์•˜์œผ๋ฉฐ ์ด๊ฒƒ์ด "๊ณ ์ •"๋˜์ง€ ์•Š์€ ์ด์œ ์ž…๋‹ˆ๋‹ค.

@nnmrts ๋‚ด ์Šคํฌ๋ฆฝํŠธ https://github.com/yarnpkg/yarn/issues/4986#issuecomment -562719589๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์ง€๊ธˆ์€ ๋„์›€์ด ๋ ๊นŒ์š”?

@rally25rs ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ํ”ผ๊ณคํ•˜๊ณ  ์‹ฌ์ˆ ๊ถ‚์Šต๋‹ˆ๋‹ค. ์ œ ๋Œ“๊ธ€์€ ํ•ด๊ฒฐ๋œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ˜ฌ

@nnmrts ์ œ ์Šคํฌ๋ฆฝํŠธ #4986(๋Œ“๊ธ€) ์„ ํ™•์ธํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ์ง€๊ธˆ ๋‹น์žฅ์€ ๋„์›€์ด ๋ ๊นŒ์š”?

๊ทธ ์Šคํฌ๋ฆฝํŠธ๋Š” ๋ถˆํ–‰ํžˆ๋„ ๋‚˜์—๊ฒŒ ํšจ๊ณผ๊ฐ€ ์—†์—ˆ๊ณ  ์–ด์ œ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๋ญ”๊ฐ€ ์ž˜๋ชปํ–ˆ์„ ์ˆ˜๋„ ์žˆ์ง€๋งŒ ๋‚ด ์ „์ฒด yarn.lock ํŒŒ์ผ์ด ์Šคํฌ๋ฆฝํŠธ์— ์˜ํ•ด "๋น„์›Œ์กŒ์Šต๋‹ˆ๋‹ค".

์ด๊ฒƒ์ด ์–ผ๋งˆ๋‚˜ ์ข‹์€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ธ์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ด ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

const fs = require('fs')
const lockfile = require('@yarnpkg/lockfile')
const package = require('./package.json')

const lock = lockfile.parse(fs.readFileSync('yarn.lock', 'utf-8')).object

const allDeps = new Set()

const parseDep = ([name, version]) => {
  allDeps.add(`${name}@${version}`)
}

Object.entries(package.dependencies).forEach(parseDep)
Object.entries(package.devDependencies).forEach(parseDep)

const newLock = Object.fromEntries(Object.entries(lock).filter(([dep]) => allDeps.has(dep)))
const newLockString = lockfile.stringify(newLock)

fs.writeFileSync('yarn.lock', newLockString)

๊ทธ๋Ÿฐ ๋‹ค์Œ yarn install ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๊ฐ„์ ‘ ์ข…์†์„ฑ์˜ ์ตœ์‹  ๋ฒ„์ „์„ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊นŠ์€/๊ฐ„์ ‘์ ์ธ ์ข…์†์„ฑ์„ ์„ฑ๊ณต์ ์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์–ธ์ œ์ฏค ์ •์‹ ์ง€์›์ด ๋˜๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

https://medium.com/@ayushya/upgrading -javascript-packages-deep-dependencies-using-yarn-8b5983d5fb6b

๋‚˜๋Š” yarn.lock์„ ๋‹ค์‹œ ์ƒ์„ฑํ•˜๋Š” ์œ„ํ—˜์„ ํ•ด๊ฒฐํ•˜๊ณ  ์„ค๋ช…ํ–ˆ์œผ๋ฉฐ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•  ์ž‘์—…์„ ์ œ์•ˆํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ์—ฌ๋Ÿฌ๋ถ„์—๊ฒŒ๋„ ํšจ๊ณผ๊ฐ€ ์žˆ๋Š”์ง€ ์•Œ๋ ค์ฃผ์„ธ์š”. ๋˜๋Š” ์—…๊ทธ๋ ˆ์ด๋“œ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•œ ์ œ์•ˆ.

@ayushya ํ , ํšจ๊ณผ๊ฐ€ ์žˆ๋Š” ๊ฒƒ ๊ฐ™๊ตฐ์š”, ์ฒœ์žฌ.

์›์‚ฌ๊ฐ€ ๊ฐ„์ ‘ ์ข…์†์„ฑ(๋˜๋Š” ๋‹ค๋ฅธ ๋ช…๋ น?)์— yarn upgrade ๊ฐ€ ์žˆ๋Š” ํŒจ์น˜๋ฅผ ํ—ˆ์šฉํ• ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ๋ฐฉ๊ธˆ... โ€‹โ€‹๊ทธ๋ ‡๊ฒŒ ํ–ˆ๋‚˜์š”?

@jrochkind ๋‚ด ์ง์ ‘์ ์ธ ์ข…์†์„ฑ์ด ์•„๋‹ˆ๋”๋ผ๋„ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ๊ฐ„์ ‘ ์ข…์†์„ฑ์˜ yarn upgrade ๋ฅผ ์˜ˆ์ƒํ–ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•ด๋‹น ๊ธฐ๋Šฅ์ด ์—†์œผ๋ฉด ๊ฐ„์ ‘ ์ข…์†์„ฑ ์—…๋ฐ์ดํŠธ์— ๋ช‡ ๋…„ ๋’ค์ณ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ œ ๊ฒฝ์šฐ์—๋Š” fsevents yarn install (https://github.com/fsevents/fsevents/issues/278 ). fsevents ๋Š” ๋‚ด๊ฐ€ ์ง์ ‘ ์‚ฌ์šฉํ•˜๋Š” ํŒจํ‚ค์ง€๊ฐ€ ์•„๋‹ˆ๋ผ webpack-dev-server ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋†€๋ž๊ฒŒ๋„ webpack-dev-server ๊ฐ€ ์ด ์•ฑ์— ์ฒ˜์Œ ์„ค์น˜๋˜์—ˆ์„ ๋•Œ ์กด์žฌํ–ˆ๋˜ ๋ชจ๋“  ๋ฒ„์ „์— ์ž ๊ฒจ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ธฐ ์œ„ํ•ด ์ด ํŠธ๋ฆญ์„ ์‚ฌ์šฉํ•ด์•ผ ํ–ˆ๊ณ , ์ด๊ฒƒ์€ ์™„์ „ํ•œ ํ•ดํ‚น์ฒ˜๋Ÿผ ๋ณด์˜€์Šต๋‹ˆ๋‹ค. https://github.com/yarnpkg/yarn/issues/4986#issuecomment -395036563

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ถˆํ–‰ํžˆ๋„ ์˜ค๋ž˜๋œ ์ข…์† ์ข…์†์„ฑ์ด ์‚ญ์ œ๋œ ํ›„ yarn.lock ํŒŒ์ผ์— ๋‹ค์‹œ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. yarn install ์‹คํ–‰ ํ›„ node_modules ํด๋”์™€ yarn.lock ํŒŒ์ผ์—์„œ ๋‹ค์‹œ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์›์‚ฌ ์ž‘์—… ๊ณต๊ฐ„๊ณผ ํ˜ธํ™˜๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์ž‘๋™ํ•  ๋•Œ @FelipeLujan ์€ ๊นŠ์€ ์ข…์†์„ฑ์ด ์—ฌ์ „ํžˆ yarn.lock ํŒŒ์ผ์— ๋‹ค์‹œ ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ƒˆ ๋ฒ„์ „ ์ด ๋ฆด๋ฆฌ์Šค ๋˜๊ณ  ์ข…์†์„ฑ ํŠธ๋ฆฌ์—์„œ ํ—ˆ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ์ƒˆ ๋ฒ„์ „์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ถ€ ์ค‘๊ฐœ ์ข…์†์„ฑ์ด ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š” ์ œํ•œ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒฝ์šฐ์—๋„ ์—ฌ์ „ํžˆ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํŠธ๋ฆฌ์˜ ์ œํ•œ ์‚ฌํ•ญ์ด ํ—ˆ์šฉํ•˜๋Š” ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์›์‚ฌ ์ž‘์—… ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๊ด€๋ จ์„ฑ์ด ์žˆ๋Š”์ง€ ๋งํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

@FelipeLujan AFAIK ์›์‚ฌ ์ž‘์—… ๊ณต๊ฐ„๋„ ๋น„์Šทํ•œ ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

ํŒจํ‚ค์ง€ ์„น์…˜์„ ์‚ญ์ œํ•˜๋Š” ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ํŒจํ‚ค์ง€๋ฅผ ์ตœ์‹  MINOR/PATCH ๋ฒ„์ „์œผ๋กœ๋งŒ ์—…๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค.
ํŒจํ‚ค์ง€๋ฅผ ์ตœ์‹  MAJOR ๋ฒ„์ „์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๋ฉด yarn why package-name-here ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ํŒจํ‚ค์ง€ ์ข…์†์„ฑ ์ฒด์ธ์„ ์ฐพ์•„ ์ฒด์ธ์˜ ๋งจ ์œ„์—์„œ ํŒจํ‚ค์ง€๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ฃผ์˜: ํŒจํ‚ค์ง€๋ฅผ ์ตœ์‹  MAJOR ๋ฒ„์ „์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด ๋ช‡ ๊ฐ€์ง€ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ฝ”๋“œ๋ฅผ ํ…Œ์ŠคํŠธํ•˜์‹ญ์‹œ์˜ค.

https://github.com/djmitche/yarn-minify ๊ฐ€ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@ayushya ์˜ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๊ฐ„์ ‘์ ์ธ ์ข…์†์„ฑ์„ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด ์ˆ˜๋™์œผ๋กœ yarn.lock์„ ํŽธ์ง‘ํ•œ ๋‹ค์Œ, ์ดํ›„ ๋ฒ„์ „์—์„œ ๋‹ค์‹œ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด yarn install์„ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚˜์—๊ฒŒ ์ด๊ฒƒ์€ yarn.lock์„ ์ˆ˜๋™์œผ๋กœ ํŽธ์ง‘ํ•  ๊ฒƒ์„ ์š”๊ตฌํ•˜๊ธฐ ๋ณด๋‹ค๋Š” yarn์— ๋‚ด์žฅ๋˜์–ด์•ผ ํ•˜๋Š” ๊ธฐ๋Šฅ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. ์ข…์†์„ฑ์„ ์‚ญ์ œํ•˜๊ณ  yarn install์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์ˆ˜๋™์œผ๋กœ ํŽธ์ง‘ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ๊ธฐ๋Šฅ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ์ƒ๋‹นํžˆ ๊ฐ„๋‹จํ•ด์•ผ ํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด ๊ธฐ๋Šฅ์ด ์ •๋ง๋กœ ์›์‚ฌ์— ๋‚ด์žฅ๋˜์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š”๋ฐ, ์™œ ๊ทธ๋ ‡์ง€ ์•Š์€์ง€ ํ˜ผ๋ž€์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค.

๊นŠ์€/๊ฐ„์ ‘์ ์ธ ์ข…์†์„ฑ์„ ์„ฑ๊ณต์ ์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์–ธ์ œ์ฏค ์ •์‹ ์ง€์›์ด ๋˜๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

https://medium.com/@ayushya/upgrading -javascript-packages-deep-dependencies-using-yarn-8b5983d5fb6b

๋‚˜๋Š” yarn.lock์„ ๋‹ค์‹œ ์ƒ์„ฑํ•˜๋Š” ์œ„ํ—˜์„ ํ•ด๊ฒฐํ•˜๊ณ  ์„ค๋ช…ํ–ˆ์œผ๋ฉฐ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•  ์ž‘์—…์„ ์ œ์•ˆํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ์—ฌ๋Ÿฌ๋ถ„์—๊ฒŒ๋„ ํšจ๊ณผ๊ฐ€ ์žˆ๋Š”์ง€ ์•Œ๋ ค์ฃผ์„ธ์š”. ๋˜๋Š” ์—…๊ทธ๋ ˆ์ด๋“œ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•œ ์ œ์•ˆ.

@alex-thewsey-ibm์ด ์ œ๊ณตํ•œ ๊ฒƒ๊ณผ ๋™์ผํ•œ ํ•ด์ƒ๋„๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. yarn.lock์—์„œ ํŠน์ • ์ข…์†์„ฑ์„ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์ด ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
์–ด์จŒ๋“  ํ•ดํ‚น ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹คโ˜บ๏ธ

$ package.json resolutions ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค. https://github.com/webpack/webpack-dev-server/issues/2739#issuecomment -695164486

์ด๊ฒƒ์€ ์ ์–ด๋„ ์ผ๋ถ€ ๊ฒฝ๊ณ ๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

yarn add [email protected]
yarn upgrade is-alphabetical

์ด๊ฒƒ์ด ๋‚ด๊ฐ€ ๋Œ€์‹  ์–ป๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

success Saved lockfile.
success Saved 0 new dependencies.

์ƒˆ๋กœ์šด is-alphabetical ํŒจํ‚ค์ง€ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ package.json ๋ฐ yarn.lock ์—๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์—†์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰