<p>yarn ์„ค์น˜ ๋ณ€๊ฒฝ yarn.lock ํŒŒ์ผ</p>

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

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

ํ˜„์žฌ ํ–‰๋™์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?
ํŠน์ • ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•  ๋•Œ yarn.lock ํŒŒ์ผ์ด ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค. ํŒจํ‚ค์ง€์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ Cordova๊ฐ€ ๋™์ž‘์„ ํŠธ๋ฆฌ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

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

๋นˆ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•˜์‹ญ์‹œ์˜ค.

yarn init
yarn add cordova
cp yarn.lock yarn.lock.initial
rm -r node_modules
yarn install
diff yarn.lock.initial yarn.lock

yarn.lock ํŒŒ์ผ์ด ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ์ƒ๋˜๋Š” ๋™์ž‘์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์ž ๊ธˆ ํŒŒ์ผ์ด ์ด๋ฏธ์žˆ๋Š” ๊ฒฝ์šฐ ์„ค์น˜ํ•˜๋ฉด ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

node.js, yarn ๋ฐ ์šด์˜ ์ฒด์ œ ๋ฒ„์ „์„ ์–ธ๊ธ‰ํ•˜์‹ญ์‹œ์˜ค.

๋…ธ๋“œ v6.11.3, yarn v1.0.1, Mac OS 10.11.6

cat-documentation cat-feature help wanted needs-discussion

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

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

๋‚ด ๊ถŒํ•œ์—†์ด ์ž ๊ธˆ ํŒŒ์ผ์ด ์†์ƒ๋˜์ง€ ์•Š์•˜ ์Œ์„ ํ™•์‹  ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฌธ์„œ๋ฅผ ์ฐพ์•„์•ผํ•˜๋Š” ๋ณ„๋„์˜ ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์€ ํŠนํžˆ ์‹คํŒจ๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜์žˆ๋Š” ๊ฒฝ์šฐ ๋งค์šฐ ํ˜ผ๋ž€ ์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋กœ์„œ ์ €๋Š” ์ œ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋„๊ตฌ๋ฅผ ์ œ์–ด ํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๊ธฐ๋Œ€ํ•˜๋ฉฐ์ด ๋™์ž‘์ด ์ €๋ฅผ ๋นผ์•—์•„๊ฐ€๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ž ๊ธˆ ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜์ง€ ์•Š๊ณ  ์ข…์†์„ฑ ์„ค์น˜์‹œ์—๋งŒ ์ž‘๋™ํ•˜๋„๋ก ๊ธฐ๋ณธ ๋™์ž‘์„ ๋’ค์ง‘๋Š” ๊ฒƒ์„ ๋‹ค์‹œ ๊ณ ๋ คํ•˜์‹ญ์‹œ์˜ค. package.json ๊ฐ€ ์ž ๊ธˆ ํŒŒ์ผ๊ณผ ๋™๊ธฐํ™”๋˜์ง€ ์•Š์•˜๋‹ค๋Š” ๊ฒฝ๊ณ ์™€ ํ•จ๊ป˜ ๋ฌด๊ฒฐ์„ฑ ๊ฒ€์‚ฌ๊ฐ€ ์‹ค์ œ๋กœ ํ•„์š”ํ•œ ๋ชจ๋“  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

๋‚˜๋Š” ์ด๊ฒƒ์ด ๋ฒ„๊ทธ๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ ํ•  ์ˆ˜ ์žˆ์—ˆ์ง€๋งŒ ์ฐจ์ด์ ์€

52,55d51
< ansi-regex@*:
<   version "3.0.0"
<   resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
<
1352c1348
< imurmurhash@*, imurmurhash@^0.1.4:
---
> imurmurhash@^0.1.4:

์ด ๋ณ€๊ฒฝ์€ ์ž ๊ธˆ ํŒŒ์ผ์˜ ์ตœ์ ํ™” ์ผ ๋ฟ์ด๋ฉฐ ์˜๋ฏธ ์ฒด๊ณ„๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. yarn install ์‹คํ–‰ํ•  ๋•Œ ์ž ๊ธˆ ํŒŒ์ผ์„ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•  ๋•Œ ๊ฒฝ๊ณ ๋ฅผ ์ถ”๊ฐ€ ํ•  ๊ณ„ํš์ด์ง€๋งŒ ์ž ๊ธˆ ํŒŒ์ผ์ด ๋™์ผํ•˜๊ณ  ์ •ํ™•ํ•œ์ง€ ํ™•์ธํ•˜๋ ค๋ฉด --frozen-lockfile ์˜ต์…˜์„ ์‚ฌ์šฉํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด๊ฒƒ์ด ์•ฝ๊ฐ„ ์ง๊ด€์ ์ด์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์„ ์ธ์ •ํ•ด์•ผํ•˜๋ฉฐ ์šฐ๋ฆฌ๋Š” ์ด์— ๋Œ€ํ•œ ์ข‹์€ ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์œผ๋ ค๊ณ  ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. # 4147์— ๋Œ€ํ•œ ํ† ๋ก ์„ ๋”ฐ๋ฅด๊ฑฐ๋‚˜ ํ† ๋ก ์— ๊ธฐ์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ๋ฒ„๊ทธ๊ฐ€ ์•„๋‹ˆ๋ฉฐ # 4147์ด ํ† ๋ก ์„ ๊ณ„์†ํ•˜๊ธฐ์— ์ข‹์€ ์žฅ์†Œ๋ผ๋Š” ๋ฐ ๋™์˜ํ•œ๋‹ค๋ฉด, ๋ฌธ์ œ๋ฅผ ์ข…๊ฒฐ ํ•ด ์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค. :)

@BYK ๊ท€ํ•˜์˜ ์‚ฌ๋ ค ๊นŠ์€ ๋‹ต๋ณ€์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. # 4147์„ ์ฝ์€ ํ›„ ์ €๋Š”์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ์šธํƒ€๋ฆฌ์— ์„ฐ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ์ข€ ๋” ๋งŽ์€ ํ† ๋ก ์ด ๋„์›€์ด๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

4147์€ yarn.lock ๋ฐ package.json์ด ๋™๊ธฐํ™”๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋งŒ ํ•ด๋‹น๋˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์œ ์ผํ•œ ์‹œ๊ฐ„ ์ตœ์ ํ™”๊ฐ€ ์–ธ๊ธ‰ ๋œ ๋‚ด์šฉ์€ https://github.com/yarnpkg/yarn/issues/4147์ž…๋‹ˆ๋‹ค. #issuecomment -321894341 - ๊ทธ๋ฆฌ๊ณ  ๋ฌธ์ œ์— ๋Œ€ํ•œ ๊ทธ ์ฃผ์„ ์ ‘์ด‰์ด ์šฐ๋ ค ๋‚˜ ๋‹ค์Œ ์ˆ˜์ • ์›์‚ฌ yarn.lock ๋ณ€๊ฒฝ์ด ์ด๋ฃจ์–ด์ง€์ง€ ๋œ ํŒŒ์ผ package.json .

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

๋‹จ๊ธฐ์ ์œผ๋กœ๋Š” ๋ชจ๋“  ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ --frozen-lockfile true ๋ฅผ .yarnrc ์— ์ถ”๊ฐ€ํ•ด์•ผ ํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.ํ•˜์ง€๋งŒ์ด ์†”๋ฃจ์…˜์€ ๋‹ค์Œ์— ์–ธ๊ธ‰ ๋œ ์›Œํฌ ํ”Œ๋กœ๋ฅผ ๋ฐฐ์ œํ•˜๊ธฐ ๋•Œ๋ฌธ์—์ด ์†”๋ฃจ์…˜์˜ ์—ด๋ ฌํ•œ ํŒฌ์ด ์•„๋‹™๋‹ˆ๋‹ค. # 4147 ์—ฌ๊ธฐ์„œ package.json ๋ฅผ ํŽธ์ง‘ ํ•œ ๋‹ค์Œ yarn install ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์–€์˜ ํ˜ธ์ถœ์ด yarn.lock ์ˆ˜์ •ํ•˜๋ ค๋Š” ์˜๋„์ž…๋‹ˆ๊นŒ?

@BYK ๋‹น์‹ ์ด ๋งค์šฐ ๋ฐ”์˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์— ๋Œ€ํ•ด ๊ท€์ฐฎ๊ฒŒํ•ด์„œ ๋ฏธ์•ˆํ•˜์ง€๋งŒ ์ด๊ฒƒ์— ๋Œ€ํ•œ ํ™•์‹คํ•œ ๋‹ต์„ ์–ป๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋‚ด ํŒ€์— ์ข…์†์„ฑ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ฐฐํฌํ•˜๊ธฐ์œ„ํ•œ ์›Œํฌ ํ”Œ๋กœ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฐœ์ „ํ–ˆ์Šต๋‹ˆ๋‹ค.

yarn add [blah]
rm -r node_modules yarn.lock
yarn install
rm -r node_modules
yarn install

์ด๊ฒƒ์€ ์ž ๊ธˆ ํŒŒ์ผ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์—…๋ฐ์ดํŠธํ•˜๊ณ  (# 4476 ์ฐธ์กฐ), ํŒ€ ๋™๋ฃŒ๊ฐ€ ์ž ๊ธˆ ํŒŒ์ผ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ฒดํฌ์ธํ•˜์ง€ ์•Š๋„๋ก ์ž ๊ธˆ ํŒŒ์ผ์„ ์ตœ์ ํ™”ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ ํŒ€์ด ์›์‚ฌ๋ฅผ ์ž˜๋ชป ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? install ๋ช…๋ น๋งˆ๋‹ค ์ž ๊ธˆ ํŒŒ์ผ์ด ๋ณ€๊ฒฝ ๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ?

@artlogic IMHO, ํŒ€ ๋™๋ฃŒ๋Š” ๋‹จ์ง€ ์ตœ์ ํ™” ์ผ์ง€๋ผ๋„ ์ž ๊ธˆ ํŒŒ์ผ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ฒดํฌ์ธ ํ•  ์ˆ˜ ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. yarn install ์ž ๊ธˆ ํŒŒ์ผ์„ ์ตœ์ ํ™”ํ•˜๋Š” ๊ฒƒ์€ ์ง๊ด€์ ์ด์ง€ ์•Š์ง€๋งŒ ํŒ€์˜ ๊ฐ ๊ฐœ๋ฐœ์ž๊ฐ€ ์•ˆ์ „ํ•˜๊ฒŒ ์ˆ˜ํ–‰ ํ•  ์ˆ˜์žˆ๋Š” ์ž‘์—…์ด๋ผ๋Š” ๊ฐœ๋…์— ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ์™œ ๊ทธ๊ฑธ ๊ธˆ์ง€ํ•˜๊ณ  ์‹ถ์€์ง€ ์ดํ•ด๊ฐ€ ์•ˆ ๋ผ์š”.

์ฆ‰, ์ž ๊ธด ๋ฒ„์ „์„ ๊ฑฐ์˜ ํฌ๊ธฐํ•˜๋ฏ€๋กœ โ€‹โ€‹์›Œํฌ ํ”Œ๋กœ๊ฐ€ ์˜ˆ๊ธฐ์น˜ ์•Š์€ ๋ถ€์ž‘์šฉ์„ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž ๊ธˆ ํŒŒ์ผ์„ ์‚ญ์ œํ•˜๋ฉด yarn์ด ๋ชจ๋“  ์ข…์†์„ฑ ๋ฒ„์ „์„ ๋‹ค์‹œ ํ™•์ธํ•ด์•ผํ•˜๋ฉฐ package.json ์—์„œ ์ง€์ ํ•œ๋Œ€๋กœ ์ตœ์‹  ๋ฒ„์ „์„ ๊ฐ€์ ธ ์˜ค๋ ค๊ณ  ์‹œ๋„ํ•˜์—ฌ ์ž ์žฌ์  ์ธ ์†์ƒ, ํŠนํžˆ. ๋‘˜ ์ด์ƒ์˜ ์ข…์†์„ฑ์ด ํ–ฅํ›„ ๋ฒ„์ „์—์„œ ๋™์‹œ์— ์ค‘๋‹จ๋˜๋Š” ๊ฒฝ์šฐ.

์—ฌ์ „ํžˆ ์„ค์น˜๊ฐ€ ์ž ๊ธˆ ํŒŒ์ผ์„ ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š๋„๋ก ๊ฐ•์ œํ•˜๋ ค๋ฉด frozen-lockfile ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

 yarn add {blah}

์ž ๊ธˆ ํŒŒ์ผ์„ ํ™•์ธํ•˜๋ฉด ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

   yarn install --frozen-lockfile

--frozen-lockfile ๋ฅผ true ์— .yarnrc true ์— ์ถ”๊ฐ€ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์—…๋ฐ์ดํŠธ ํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ๋‹ค์Œ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. # 4570

์ข…์†์„ฑ์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค.

 yarn upgrade

ํ•˜๋‚˜์˜ ์ข…์†์„ฑ ๋งŒ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๋Š” ๊ฒฝ์šฐ :

  yarn upgrade {blah}

ํ•œ ์ข…์†์„ฑ์˜ ํŠน์ • ๋ฒ„์ „ ๋งŒ ์„ค์น˜ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

  yarn install {blah}@1.5

์ด๋ฅผ ํ†ตํ•ด ์žฅ๊ธฐ์ ์œผ๋กœ ๋” ๋ฏธ์„ธ ์กฐ์ •ํ•˜๊ณ  ๋‘ํ†ต์„ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@ k0pernikus- ์ž์„ธํ•œ ๋‹ต๋ณ€์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๋จผ์ € ๋‘ ๊ฐ€์ง€ ๋ฌธ์ œ๋ฅผ ํ•ฉ์นœ ๊ฒƒ์— ๋Œ€ํ•ด ์‚ฌ๊ณผํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. # 4476์ด ๋‚ด ์ž‘์—… ํ๋ฆ„์˜ ์ผ๋ถ€๋ฅผ ์ฃผ๋„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. yarn upgrade ๊ฐ€ ๋‹ค์†Œ ๊นจ์ง„ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ธ๋‹ค๋Š” ์‚ฌ์‹ค์€ ๋ฌผ๋ก ์ด ๋ฌธ์ œ์™€๋Š” ์•„๋ฌด๋Ÿฐ ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค.

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

  • yarn.lock ๋ณ€๊ฒฝ (dev4)
  • yarn.lock ๋ณ€๊ฒฝ๋จ (dev3)
  • yarn.lock ๋ณ€๊ฒฝ๋จ (dev2)
  • yarn.lock ๋ณ€๊ฒฝ (dev1)
  • ์—…๋ฐ์ดํŠธ ๋œ ์ข…์†์„ฑ (๋‚˜)

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

ํ•˜๋‚˜์˜ ์ถ”๊ฐ€ ์‹œ๋‚˜๋ฆฌ์˜ค ... ์ด๊ฒƒ์€ ์ž ์žฌ์ ์œผ๋กœ ๋ณต์ œ ๋ฐ ์„ค์น˜ํ•  ๋•Œ๋งˆ๋‹ค ์ž ๊ธˆ ํŒŒ์ผ์ด ๋ณ€๊ฒฝ ๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋งŽ์€ ๊ธฐ์—ฌ์ž๊ฐ€์žˆ๋Š” ํ”„๋กœ์ ํŠธ์— ์ž ์žฌ์  ์ธ ์„ฑ๊ฐ€์‹  ์ผ์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ’€ ์š”์ฒญ์—์„œ ์ด๋Ÿฌํ•œ ์ตœ์ ํ™”๋ฅผ ์›ํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ FOSS ํ”„๋กœ์ ํŠธ๊ฐ€ ์‹ค์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ณ ์ • ๋œ ์ž ๊ธˆ ํŒŒ์ผ๋กœ ์ „ํ™˜ํ•˜๋ ค๋Š” ์˜๋„์ž…๋‹ˆ๊นŒ?

@artlogic ์šฐ๋ฆฌ ํŒ€์€ ์ •ํ™•ํžˆ ์ด๋Ÿฐ ์ด์œ ๋กœ ํ”„๋กœ์ ํŠธ์˜ .yarnrc ์— --install.pure-lockfile true ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

@jboler- ์ „์—๋Š” ๊ทธ ์„ค์ •์„ ๋ณธ ์ ์ด ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ํ•œ ๋ฒˆ ์‚ดํŽด ๋ด์•ผ ํ•  ๊ฒƒ ๊ฐ™์ง€๋งŒ, ์šฐ๋ฆฌ์˜ ๋ชจ๋“  ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์™€ ๋‚ด๊ฐ€ ๊ฐ€์ง€๊ณ ์žˆ๋Š” ๋ชจ๋“  FOSS ํ”„๋กœ์ ํŠธ์˜ ๋ชจ๋“  ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•ด .yarnrc ์— ์ถ”๊ฐ€ ํ•  ๊ฒƒ์„ ์ œ์•ˆ ํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์›์‚ฌ ํŒ€์˜ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ yarn install ์˜ ์˜๋„๊ฐ€ ๋ชจ๋“  ์‹คํ–‰์—์„œ ์ž ๊ธˆ ํŒŒ์ผ์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๊ณ  ๋ณ€๊ฒฝํ•  ๊ฒƒ์ด๋ผ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด (์ข…์†์„ฑ์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ์ด ์—†์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ )์ด ๋ฌธ์ œ๋ฅผ ์ข…๋ฃŒํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

@artlogic ๋Šฆ๊ฒŒ ์‘๋‹ต ํ•ด

๋ฌธ์ œ๋Š” yarn install ๊ฐ€ ์ž ๊ธˆ ํŒŒ์ผ์„ ์ž ์žฌ์ ์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ด __expected__์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์ด ์ด์ƒ์ ์ด์ง€ ์•Š๊ณ  ๋” ๋‚˜์€ ์˜์‚ฌ ์†Œํ†ต์ด ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ •๋ง๋กœ ๋” ๋‚˜์€ ๊ธฐ๋ณธ๊ฐ’์„ ์›ํ•˜์ง€๋งŒ ๊ทธ ๋™์•ˆ @jboler ์™€ ๊ฐ™์€ --frozen-lockfile ๋Œ€์‹  ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ตœ์„ ์˜ ํ•ด๊ฒฐ์ฑ…์ด ๋  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ๋žŒ๋“ค์ด yarn add ๋“ฑ์„ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€์‹  ๋‹จ์ˆœํžˆ package.json ๋ฅผ ํŽธ์ง‘ํ•˜์—ฌ ์ข…์†์„ฑ์„ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ฒƒ์„ ์„ ํ˜ธํ•˜๋Š” ์›Œํฌ ํ”Œ๋กœ

@BYK ๋‚˜๋Š” @artlogic์— ๋™์˜ํ–ˆ๋‹ค. ์ด ๋™์ž‘์€ ๋งค์šฐ ํ˜ผ๋ž€ ์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์‹œ์ž‘ํ•œ ์ผ๊ณผ ๊ด€๋ จ๋œ ํฐ ๋ฌธ์ œ๋Š” ์ƒˆ๋กœ์šด ์ข…์†์„ฑ์„ ์„ค์น˜ / ํ…Œ์ŠคํŠธํ•˜๊ณ  ๋ชจ๋“  ์‚ฌ๋žŒ์—๊ฒŒ yarn install์„ ์‹คํ–‰ํ•˜๋„๋ก ์ง€์‹œ ํ•œ ๋‹ค์Œ ๋ณ€๊ฒฝ๋œ yarn.lock์ด ์ปค๋ฐ‹๋˜์–ด์•ผํ•˜๋Š”์ง€์— ๋Œ€ํ•ด 4-5 ๊ฐœ์˜ ์งˆ๋ฌธ์„๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ ํŒ€์€ ๋งค์ผ yarn install ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ~ 50 ๋ช…์˜ ์‚ฌ๋žŒ๋“ค๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค :(

@vkrol Yarn์ด ๋™์ž‘์„ ๋ณ€๊ฒฝํ•  ๋•Œ๊นŒ์ง€ ๋ฌธ์ œ๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด --install.frozen-lockfile true ๋˜๋Š” --install.pure-lockfile true ๊ฐ€์žˆ๋Š” .yarnrc ํŒŒ์ผ์„ ์ฒดํฌ์ธ ํ•  ์ˆ˜ ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๋„์›€์ด ๋ ๊นŒ์š”?

@BYK pure-lockfile ๋Š” ๋„์›€์ด๋˜์ง€๋งŒ frozen-lockfile ๋Š” ๋„์›€์ด๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ดํ•ดํ•˜๋ฉด frozen-lockfile์ด ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์œผ๋ฉด yarn install ์˜ค๋ฅ˜์™€ ํ•จ๊ป˜ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. ์ด ํ–‰๋™์€ ์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ ์ ˆ๋Œ€ ์šฉ๋‚ฉ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

@vkrol ๋‚ด ๊ธฐ๋ณธ ์„ค์ •์€ frozen-lockfile ์ž…๋‹ˆ๋‹ค. ์ž ๊ธˆ ํŒŒ์ผ์„ ๋ณ€๊ฒฝํ•ด์•ผํ•˜๊ณ  ์ผ๊ด€์„ฑ์ด์—†๋Š” ๊ฒฝ์šฐ์—๋งŒ ์‹คํŒจํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. pure-lockfile ํ•˜๋ฉด ์ž ๊ธˆ ํŒŒ์ผ์ด ๊ฑฐ์˜ ์“ธ๋ชจ ์—†๊ฑฐ๋‚˜ ๋งค์šฐ ๋ถ€์ •ํ™• ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ์‹คํŒจํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. Yarn์€ ๋‹จ์ˆœํžˆ ํ–‰๋ณตํ•˜๊ฒŒ ๊ณ„์‚ฐ ํ•œ ๋‚ด๋ถ€ ํ•ด์ƒ๋„๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ํŒ€์›์ด ๋˜‘๊ฐ™์€ ๋ฒ„์ „์˜ Yarn์„ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ๊ดœ์ฐฎ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์œ„ํ—˜ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@BYK ์•„๋งˆ๋„ frozen-lockfile ๋™์ž‘์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ดํ•ดํ•˜์ง€ ๋ชปํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž ๊ธˆ ํŒŒ์ผ์ด package.json ๋‚ด์šฉ๊ณผ ์ผ์น˜ํ•˜์ง€๋งŒ ๋‚ด๋ถ€ ์ตœ์ ํ™”๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์‹คํŒจํ•ฉ๋‹ˆ๊นŒ?

@vkrol ํŒŒ์ผ์„ ๋” ์ตœ์ ํ™” ํ•  ์ˆ˜์žˆ์„ ๋•Œ ์‹คํŒจํ•ด์„œ๋Š” https://github.com/yarnpkg/yarn/blob/0415b07b3293ab125a77f3f66fe14034d6e5b376/__tests__/commands/install/lockfiles.js#L72 -L84

@BYK ๋‚˜๋Š” ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ๋ชฐ๋ž๋‹ค. ์ด ์˜ต์…˜์„ ์‹œ๋„ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ๋‚˜๋Š”์ด ์‚ฌ์‹ค์ด ์–ด๋”˜๊ฐ€์— ๋ฌธ์„œํ™”๋˜์–ด์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

@BYK

ํŒŒ์ผ์„ ๋” ์ตœ์ ํ™” ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ package.json๊ณผ ์ผ๊ด€์„ฑ์ด ์žˆ๊ณ  ์ž์ฒด์ ์œผ๋กœ ์ผ๊ด€์„ฑ์ด์žˆ์„ ๋•Œ ์‹คํŒจํ•ด์„œ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค.

์ด ํ”Œ๋ž˜๊ทธ ์‚ฌ์šฉ์˜ ๋‹จ์ ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. yarn.lock์ด์ด ๋ช…๋ น์˜ ๋ฐ˜๋ณต ๋œ ํ˜ธ์ถœ๋ณด๋‹ค ์ตœ์ ํ™” ๋  ์ˆ˜์žˆ๋Š” ๊ฒฝ์šฐ yarn install --frozen-lockfile ์€์ด ํ”Œ๋ž˜๊ทธ์—†์ด "integrity"๊ฒ€์‚ฌ๋ฅผ ํ†ตํ•ด ์ตœ์ ํ™”๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋ฒ„๊ทธ์ž…๋‹ˆ๊นŒ? ๋ณ„๋„์˜ ๋ฐœํ–‰๋ฌผ์„ ๋งŒ๋“ค์–ด์•ผํ•ฉ๋‹ˆ๊นŒ?

@BYK ๊ท€ํ•˜์˜ ๋‹ต๋ณ€์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ํŒ€์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” ์ด์ œ frozen-lockfile ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ (์ƒ๋Œ€์ ์œผ๋กœ) ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜์ด ๋ฌธ์ œ๋Š” ๋‚˜์—๊ฒŒ ๋‹ค์†Œ ์šฐ๋ ค๋˜๋Š” ๋ถ€๋ถ„์œผ๋กœ ๋‚จ์•„ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ๋ถˆํ•„์š”ํ•œ ์ตœ์ ํ™” yarn์€ yarn install ์‹คํ–‰ํ•  ๋•Œ ์ž ๊ธˆ ํŒŒ์ผ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

๋‹ค์Œ์€์ด ๋™์ž‘์œผ๋กœ ์ธํ•ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๋ถ€๋ถ„์— ๋Œ€ํ•œ ๊ฐ€์žฅ ๋ช…ํ™•ํ•œ ์˜ˆ์ž…๋‹ˆ๋‹ค.

  1. yarn add [blah] ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ ์ข…์†์„ฑ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์—…๋ฐ์ดํŠธ ๋œ package.json ๋ฐ yarn.lock ์ปค๋ฐ‹ํ•ฉ๋‹ˆ๋‹ค.
  2. ๋‚ด ํŒจํ‚ค์ง€์˜ ๊ธฐ์—ฌ์ž๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํ’€๋‹ค์šดํ•˜๊ณ  yarn.lock ์ด ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Œ์„ โ€‹โ€‹ํ™•์ธํ•˜๊ณ  yarn install ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  3. ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ์ด๋Ÿฌํ•œ ๊ธฐ์—ฌ์ž๋Š” ์„ค์น˜ ํ›„ ์ˆ˜์ • ๋œ yarn.lock ๋๋‚ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์–ด๋–ป๊ฒŒํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ? ๋ˆ„๊ฐ€ ๋จผ์ € ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ์ œ์ถœํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๋ณด๋Š” ๊ฒฝ์Ÿ์ž…๋‹ˆ๊นŒ?

๋ช…ํ™•ํ•˜๊ฒŒ ๋งํ•˜๋ฉด package.json ๊ฐ€ ์ˆ˜์ • ๋œ ๊ฒฝ์šฐ yarn install ์ˆ˜์ •์— ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. yarn.lock . ๋‚ด ๋ฌธ์ œ๋Š” package.json ๊ฐ€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ตœ์ ํ™”์ž…๋‹ˆ๋‹ค. ์„ธ ๊ฐ€์ง€ ๊ฐ€๋Šฅํ•œ ํ•ด๊ฒฐ์ฑ…์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ์ข…์†์„ฑ์„ ์ค‘์•™์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ๋ชจ๋“  ํ”„๋กœ์ ํŠธ์— --install.frozen-lockfile true ๋ฅผ .yarnrc ํŒŒ์ผ์— ์ถ”๊ฐ€ํ•˜๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์•„๋งˆ๋„ ๋งŽ์€ ํ”„๋กœ์ ํŠธ๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค-๋Œ€๋ถ€๋ถ„์˜ NPM ํŒจํ‚ค์ง€๋Š” ์ถ”์ธกํ•ฉ๋‹ˆ๋‹ค.
  2. ์ถ”๊ฐ€ ๋‹จ๊ณ„ (์˜ˆ : yarn add --optimize [blah] ์ค‘์— yarn์ด ์ž ๊ธˆ ํŒŒ์ผ์„ ์ตœ์ ํ™”ํ•˜๋„๋กํ•˜๋Š” ์Šค์œ„์น˜๋ฅผ ์ œ๊ณตํ•˜์‹ญ์‹œ์˜ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž์—๊ฒŒ ํ•ญ์ƒ ํ•ด๋‹น ์Šค์œ„์น˜๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์ง€์‹œํ•˜์‹ญ์‹œ์˜ค.
  3. package.json ๊ฐ€ ์—…๋ฐ์ดํŠธ ๋œ ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚˜์ง€ ์•Š๋Š” ํ•œ ์„ค์น˜ ๋‹จ๊ณ„ ๋™์•ˆ yarn์ด yarn.lock ๋ฅผ ์ตœ์ ํ™”ํ•˜์ง€ ๋ชปํ•˜๋„๋กํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์˜ต์…˜ 3์„ ์˜นํ˜ธํ•˜๊ณ  ์žˆ์ง€๋งŒ ์˜ต์…˜ 2๋„ ํ•ฉ๋ฆฌ์ ์ธ ์„ ํƒ์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹œ๊ฐ„ ๋‚ด ์ค˜์„œ ๊ณ ๋งˆ์›Œ!

yarn install ๊ฐ€ yarn.lock ํŒŒ์ผ์„ ์—…๋ฐ์ดํŠธํ•˜์ง€ ์•Š๊ณ  ๋Œ€์‹  "Yarn.lock ํŒŒ์ผ์ด ์˜ค๋ž˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค. yarn blah ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์ง€๊ธˆ ์—…๋ฐ์ดํŠธํ•˜์‹ญ์‹œ์˜ค.

@BYK ์™œ ~ ~ ์›์‚ฌ์— ์ตœ์ ํ™” yarn.lock ์—๋ฅผ yarn install ๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ add / upgrade ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค?

ํŽธ์ง‘ : ์˜คํƒ€ ์ˆ˜์ •

@ spencer-brown : ๋‚ด๊ฐ€ ๋ณธ ๊ฒƒ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์‹ค์ œ๋กœ ์„ค์น˜์— ์ตœ์ ํ™”๋ฅผ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

yarn.lock์— ๋Œ€ํ•œ ์ตœ์ ํ™”๋Š” yarn add์—์„œ ์‹คํ–‰๋˜์–ด์•ผํ•˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ? yarn.lock์€ ์–ด์จŒ๋“  ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ @artlogic ์˜ ์ตœ๊ทผ ๋Œ“๊ธ€์—์„œ ๋‘ ๋ฒˆ์งธ ์˜ต์…˜์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์ตœ์ ํ™”๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ๋‹ค๋ฅธ yarn.lock ๋ณ€๊ฒฝ์„ ์ˆ˜ํ–‰ ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

@artlogic oops, typo :)-๋‚ด ์˜๊ฒฌ์€ "does"๋ผ๊ณ  ๋งํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ํŽธ์ง‘.

์šฐ๋ฆฌ๋Š” ์ž‘๊ณก๊ฐ€๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ณ  composer install ๋Š” ์ž ๊ธˆ ํŒŒ์ผ์„ ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ž ๊ธˆ ํŒŒ์ผ์„ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ ์ตœ์ ํ™”ํ•˜๋ ค๋ฉด composer update ๋˜๋Š” composer require ( yarn add ์™€ ๋™์ผ)์„ ์‹คํ–‰ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์ˆ˜๋…„ ๋™์•ˆ ์šฐ๋ฆฌ๋Š” composer install ์˜ ๋ชจํ˜ธํ•œ ๋™์ž‘์— ๋Œ€ํ•ด ๊ฑฑ์ •ํ•  ํ•„์š”๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” yarn์ด ์•ฝ๊ฐ„ ๋‹ค๋ฅธ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ composer๋Š” composer.json ์— ์ˆ˜๋™ ์—…๋ฐ์ดํŠธ๊ฐ€ ์ด๋ฃจ์–ด์ง€๊ณ  ์ž ๊ธˆ ํŒŒ์ผ๊ณผ ๋™๊ธฐํ™”๋˜์ง€ ์•Š๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ composer install ๋Š” composer.json ํŒŒ์ผ์„ ์™„์ „ํžˆ ๋ฌด์‹œํ•˜๊ณ  ๊ฒฝ๊ณ ๋ฅผ ๋ฐœํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์ž‘๊ณก๊ฐ€๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ณ  composer install ๋Š” ์ž ๊ธˆ ํŒŒ์ผ์„ ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ž ๊ธˆ ํŒŒ์ผ์„ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ ์ตœ์ ํ™”ํ•˜๋ ค๋ฉด composer update ๋˜๋Š” composer require ( yarn add ์™€ ๋™์ผ)์„ ์‹คํ–‰ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์ˆ˜๋…„ ๋™์•ˆ ์šฐ๋ฆฌ๋Š” composer install ์˜ ๋ชจํ˜ธํ•œ ๋™์ž‘์— ๋Œ€ํ•ด ๊ฑฑ์ •ํ•  ํ•„์š”๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” yarn์ด ์•ฝ๊ฐ„ ๋‹ค๋ฅธ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ composer๋Š” composer.json ์— ์ˆ˜๋™ ์—…๋ฐ์ดํŠธ๊ฐ€ ์ด๋ฃจ์–ด์ง€๊ณ  ์ž ๊ธˆ ํŒŒ์ผ๊ณผ ๋™๊ธฐํ™”๋˜์ง€ ์•Š๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ composer install ๋Š” composer.json ํŒŒ์ผ์„ ์™„์ „ํžˆ ๋ฌด์‹œํ•˜๊ณ  ๊ฒฝ๊ณ ๋ฅผ ๋ฐœํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”, ์ž ๊ธˆ ํŒŒ์ผ์€ ํ›„์† ์„ค์น˜์—์„œ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•„์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ƒฅ ๋ฉ์ฒญ ํ•ด์š”. ์ตœ์ ํ™”๊ฐ€ ๊ฐ€์น˜๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐ๋˜๋ฉด ๋ฒ„์ „ ๊ด€๋ฆฌ์— ํฌํ•จ๋˜์ง€ ์•Š๋Š” ๋ณ„๋„์˜ ํŒŒ์ผ์„ ๋งŒ๋“œ์‹ญ์‹œ์˜ค.

Bundler์˜ Gemfile.lock๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ yarn.lock์˜ ์š”์ ์€ yarn ์„ค์น˜๊ฐ€ ์‹คํ–‰๋  ๋•Œ๋งˆ๋‹ค ๋ชจ๋“  ํ™˜๊ฒฝ์—์„œ ๊ฒฐ์ •์  ๊ฒฐ๊ณผ๋ฅผ ๋ณด์žฅ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์›์‚ฌ ์„ค์น˜๊ฐ€ ์ž ๊ธˆ ํŒŒ์ผ์„ ๋ณ€๊ฒฝํ•˜๋ฉด ๋ณด์ฆ์„ ์žƒ๊ฒŒ๋ฉ๋‹ˆ๋‹ค. yarn add ๋˜๋Š” yarn update์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ๋ช…๋ น์€ ๋ถ„๋ช…ํžˆ yarn.lock์„ ๋ณ€๊ฒฝํ•ด์•ผํ•˜์ง€๋งŒ yarn install์€ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์•„์•ผํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ํŒ€์€ ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜์ง€ ์•Š๋Š” ํ™˜๊ฒฝ์— ์•ฝ๊ฐ„ ๋‹ค๋ฅธ ํŒจํ‚ค์ง€ ๋ฒ„์ „์ด ์„ค์น˜๋˜์–ด์žˆ๋Š” ๋ฌธ์ œ์— ๋ถ€๋”ช ํ˜”์Šต๋‹ˆ๋‹ค.

yarn install --pure-lockfile ์ด ๊ธฐ๋ณธ๊ฐ’์ด์–ด์•ผํ•˜๋ฉฐ ํ˜„์žฌ ๋™์ž‘์„ ์–ป๊ธฐ ์œ„ํ•ด --fix-my-dev-process-inconsistencies-for-me-magically ์˜ต์…˜์ด์žˆ์„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

@ryancastle --pure-lockfile ๋Š” ์ž ๊ธˆ ํŒŒ์ผ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๋ ค์ฃผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•˜๋‚˜๋งŒ ์ƒ์„ฑํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ์—ฌ์ „ํžˆ ์˜ˆ๊ธฐ์น˜ ์•Š์€ ๋™์ž‘์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—…๋ฐ์ดํŠธ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ --frozen-lockfile ๊ฐ€ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ž ์‹œ ๋™์•ˆ .yarnrc ์—์„œ --install.frozen-lockfile true ์„ (๋ฅผ) ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํŠธ๋ฆญ์€ ํ•ด๋‹น ํ”Œ๋ž˜๊ทธ๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š์€ ์ €์žฅ์†Œ์— ๋Œ€ํ•œ ์ดˆ๊ธฐ yarn.lock ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ƒ์„ฑ ๋œ ํ›„์—๋Š” ์„ค์น˜์‹œ yarn.lock ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์ง€๋งŒ ์—…๋ฐ์ดํŠธ๋Š” ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์›Œํฌ ํ”Œ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๋ฉด yarn.lock ๋Œ€ํ•œ ์‹ค์ˆ˜๋กœ ๋ณ€๊ฒฝ ํ•œ ํšŸ์ˆ˜๊ฐ€ 0์œผ๋กœ ๊ฐ์†Œํ–ˆ์Šต๋‹ˆ๋‹ค.

@artlogic ์‚ฌ์ด๋“œ ๋…ธํŠธ : .yarnrc ์—๋„ frozen-lockfile true ์ด (๊ฐ€) ์žˆ์—ˆ๋Š”๋ฐ , ์ด์ œ๋Š” yarn.lock ๋Œ€ํ•œ ์˜๋„์  ์ธ ๋ณ€๊ฒฝ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋นŒ๋“œ ์„œ๋ฒ„์—์„œ๋งŒ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค package.json ์ˆ˜๋™์œผ๋กœ ํŽธ์ง‘ํ–ˆ๊ฑฐ๋‚˜ npm์„ ์‚ฌ์šฉํ•˜์—ฌ ์ข…์†์„ฑ์„ ์ถ”๊ฐ€ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— package.json ๋ฅผ yarn.lock ์— ๋™๊ธฐํ™”ํ•˜๋ ค๊ณ  ํ•  ๋•Œ yarn.lock ๊ฐ€ ์ƒ์„ฑ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์ฐธ์กฐ : https://github.com/yarnpkg/yarn/issues/4570

@ k0pernikus '์‚ฌ์šฉ ์‚ฌ๋ก€๋Š” ์šฐ๋ฆฌ๊ฐ€ํ•˜์ง€ ์•Š์•˜ ์™œ --frozen-lockfile ์™€ ๊ธฐ๋ณธ yarn install . ๋‚˜๋Š” ์†”์งํžˆ package.json ๋ฅผ ํŽธ์ง‘ ํ•œ ๋‹ค์Œ yarn install ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์ž ๊ธˆ ํŒŒ์ผ์„ ์—…๋ฐ์ดํŠธํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์„ ๋ฐฉํ•ดํ•˜์ง€ ์•Š์œผ๋ฉด ์ข‹์€ ํƒ€ํ˜‘์ด ๋ฌด์—‡์ธ์ง€ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊นƒ๋ฐœ์ด๋‚˜ yarn sync ์™€ ๊ฐ™์€ ์ƒˆ๋กœ์šด ๋ช…๋ น์„ ์ œ์•ˆํ–ˆ์ง€๋งŒ ์•„์ด๋””์–ด๋ฅผ ๊ตฌ์ฒดํ™” ํ•œ ๋‹ค์Œ ๊ตฌํ˜„ํ•˜๊ธฐ ์ „์— ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ํŒ๋‹จํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ์ด๊ฒƒ์€ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด๋ฏ€๋กœ Yarn 2.x๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. :)

yarn sync์™€ ๊ฐ™์€ ํ”Œ๋ž˜๊ทธ ๋˜๋Š” ์ƒˆ๋กœ์šด ๋ช…๋ น

๋‚˜์—๊ฒŒ ์ข‹์€ ์†Œ๋ฆฌ ๐Ÿ‘. yarn install "package.json ๋ฐ yarn.lock์ด ๋™๊ธฐํ™”๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ž ๊ธˆ ํŒŒ์ผ์„ ์—…๋ฐ์ดํŠธํ•˜๋ ค๋ฉด 'yarn sync'๋ฅผ ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค."๋ผ๋Š” ์•Œ๋ฆผ์ด ํ‘œ์‹œ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์†”์งํžˆ package.json์„ ํŽธ์ง‘ํ•˜๊ณ  yarn install์„ ์‹คํ–‰ํ•˜์—ฌ lockfile์„ ์—…๋ฐ์ดํŠธํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์„ ๋ฐฉํ•ดํ•˜์ง€ ์•Š๊ณ ์„œ๋Š” ์ข‹์€ ํƒ€ํ˜‘์ด ๋ฌด์—‡์ธ์ง€ ์•Œ์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

ํŠน์ • ์‹œ์ ์—์„œ ์ ์ ˆํ•œ ์ž‘์—… ํ๋ฆ„์ด ๋ฌด์—‡์ธ์ง€ ๊ฒฐ์ •ํ•ด์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋‚˜์—๊ฒŒ ์ด๊ฒƒ์„ ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒƒ์€ ๊ฑฐ์˜ ๋ฐ˜ ํŒจํ„ด์„ ์žฅ๋ คํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊นƒ๋ฐœ์ด๋‚˜ yarn sync์™€ ๊ฐ™์€ ์ƒˆ๋กœ์šด ๋ช…๋ น์„ ์ œ์•ˆํ–ˆ์ง€๋งŒ ์•„์ด๋””์–ด๋ฅผ ๊ตฌ์ฒดํ™”ํ•˜๊ณ  ๊ตฌํ˜„ํ•˜๊ธฐ ์ „์— ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ํŒ๋‹จํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๋‚˜์—๊ฒŒ ์ด๊ฒƒ์€ ํ•ฉ๋ฆฌ์ ์ธ ํƒ€ํ˜‘์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. package.json ๋ฅผ ์ง์ ‘ ํŽธ์ง‘ํ•ด์•ผํ•œ๋‹ค๊ณ  ์ฃผ์žฅํ•œ๋‹ค๋ฉด, ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ ๋™๊ธฐํ™” ์ƒํƒœ๋กœ ๋˜ ๋Œ๋ฆฌ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€๋ณด๊ณ  ์‹ถ์€ ๊ฒƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • yarn install ์—†์ด yarn.lock ๋Š” yarn.lock ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  • yarn install ์™€ yarn.lock ๋Š” ์ˆ˜์ •ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. yarn.lock ์™€ package.json ์‚ฌ์ด์— ๋ถˆ์ผ์น˜๊ฐ€์žˆ๋Š” ๊ฒฝ์šฐ ์˜ค๋ฅ˜๊ฐ€ ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค ( @indeyets ๊ฐ€ ํ‘œ์‹œ๋จ).
  • yarn sync (๋˜๋Š” yarn install -s )๋Š” yarn.lock ๋‹ค์‹œ package.json ์™€ ๋™๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค.

package.json ๊ฐ€ ์ž ๊ธˆ ํŒŒ์ผ๊ณผ ๋™๊ธฐํ™”๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋„ yarn install ๊ฐ€ yarn.lock ์ˆ˜์ •ํ•œ๋‹ค๋Š” ๊ทผ๋ณธ์ ์ธ ์šฐ๋ ค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์œ„์—์„œ ๋ช‡ ๊ฐ€์ง€ "์ตœ์ ํ™”"๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ์†Œํ•œ์˜ ๋ณ€๊ฒฝ์—†์ด์ด ๋™์ž‘์„ ๋น„ํ™œ์„ฑํ™” ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

package.json์ด ์ž ๊ธˆ ํŒŒ์ผ๊ณผ ๋™๊ธฐํ™”๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋„ yarn install์ด yarn.lock์„ ์ˆ˜์ •ํ•œ๋‹ค๋Š” ๊ทผ๋ณธ์ ์ธ ์šฐ๋ ค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์œ„์—์„œ ๋ช‡ ๊ฐ€์ง€ "์ตœ์ ํ™”"๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ์†Œํ•œ์˜ ๋ณ€๊ฒฝ์—†์ด์ด ๋™์ž‘์„ ๋น„ํ™œ์„ฑํ™” ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์—ฌ๊ธฐ์—๋„ ๊ฐ™์€ ๊ฐ์ •์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์ด์ด ๋ฌธ์ œ๊ฐ€ ์—ด๋ ค์žˆ๋Š” ๊ตฌ์ฒด์ ์ธ ์ด์œ ๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. "๋™๊ธฐํ™”"๋Š” # 4147์—์„œ ๋…ผ์˜๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ์ œ๊ฐ€ ์ฒ˜์Œ์—์ด ๋ฌธ์ œ๋ฅผ ๊ฒ€์ƒ‰ ํ•œ ์ด์œ ์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ๊ณผ # 4147์„ ํ•ฉ์น ๊นŒ์š”?

@BYK ์—ฌ๊ธฐ์„œ ๋…ผ์˜ ๋œ ๊ฑฐ์˜ ๋ชจ๋“  ๋‚ด์šฉ์ด # 4147๊ณผ ๋ณ‘ํ•ฉ ๋  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์ „์— ๋งํ–ˆ๋“ฏ์ด, ๋‚˜๋Š” ์•„์ง๋„ ์ €๋ฅผ ์—ผ๋ คํ•˜๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์€ "์ตœ์ ํ™”"์ƒ๊ฐ์ด yarn install ์— ์ˆ˜ํ–‰ yarn.lock ์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ์ด ์ˆ˜ํ–‰๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋„ ์žฅ์†Œ package.json .

๋‚ด ์ƒ๊ฐ์€ yarn 2.0์œผ๋กœ๊ฐ€๋Š” ๊ธธ์— ์ž„์‹œ ๋ฐฉํŽธ์œผ๋กœ ์ด๋Ÿฌํ•œ ์ตœ์ ํ™”๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ด์•ผํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ํš๊ธฐ์ ์ธ ๋ณ€ํ™”๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@artlogic์— 100 % ๋™์˜ํ•ฉ๋‹ˆ๋‹ค.

CircleCI๋ฅผ ์„ค์ •ํ–ˆ๋Š”๋ฐ ๋นŒ๋“œ๊ฐ€ ๊ณ„์† ์‹คํŒจํ•˜๊ณ  yarn.lock ์บ์‹ฑ ๋ฌธ์ œ๊นŒ์ง€ ์ถ”์ ํ–ˆ์Šต๋‹ˆ๋‹ค. Rails์—์„œ ์™”๊ธฐ ๋•Œ๋ฌธ์— ์„ค์น˜ ๋ช…๋ น์œผ๋กœ ์ž ๊ธˆ ํŒŒ์ผ์ด ์ž ๊ธธ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ CircleCI์—์„œ ์บ์‹œ ๊ฒ€์‚ฌ๋ฅผ ์œ„ํ•ด ์ œ์•ˆ ๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค : https://circleci.com/docs/2.0/yarn/

#...
      - restore_cache:
          name: Restore Yarn Package Cache
          keys:
            - yarn-packages-{{ checksum "yarn.lock" }}
      - run:
          name: Install Dependencies
          command: yarn install
      - save_cache:
          name: Save Yarn Package Cache
          key: yarn-packages-{{ checksum "yarn.lock" }}
          paths:
            - ~/.cache/yarn
#...

yarn.lock์€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•„์•ผ ํ•  ๋•Œ ๋ณ€๊ฒฝ ๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ ๋กœ macOS 10.13.6์˜ yarn 1.10.1์—์„œ OP์˜ ๋ฒ„๊ทธ ์ž๊ทน์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ yarn.lock์ด ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•˜ ์Œ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๋‚ด๊ฐ€ ์‹œ๋„ํ–ˆ์„ ๋•Œ :

yarn init
yarn add cordova
cp yarn.lock yarn.lock.initial
rm -r node_modules
yarn install
diff yarn.lock.initial yarn.lock

๋”ฐ๋ผ์„œ ์›์‚ฌ 1.10.1์„ ์‚ฌ์šฉํ•  ๋•Œ yarn install ๋Š” ์›์‚ฌ 1.0.1์„ ์‚ฌ์šฉํ•  ๋•Œ OP์—์„œ์™€ ๊ฐ™์ด yarn.lock ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. (๋‚˜๋Š” ์ด๊ฒƒ์ด OP๋ผ๊ณ  ์ƒ๊ฐํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์ข‹์€ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.)

@dtgriscom Cordova์—์„œ ๋” ์ด์ƒ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค! ์™„์ „ํžˆ ๊ณ ์ณ ์กŒ๋Š”์ง€ ์•„๋‹ˆ๋ฉด yarn์ด ์—ฌ์ „ํžˆ ์„ค์น˜์‹œ ์ž ๊ธˆ ํŒŒ์ผ์„ ์ตœ์ ํ™”ํ•˜๋ ค๊ณ ํ• ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

์•Œ์•„๋‘๋ฉด ์ข‹๊ฒ ์ฃ ? ๋ฌธ์ œ๊ฐ€ ํŒจํ‚ค์ง€์— ๋”ฐ๋ผ ๋‹ค๋ฅด๋‹ค๋Š” ์ ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฒ„์ „๋ณ„๋กœ ๋‹ค๋ฅผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ( "์šฐ๋ฆฌ๋Š” ๋ณ€๊ฒฝํ•˜์ง€ ๋ง์•„์•ผ ํ•  ๊ฒƒ์„ ๋ณ€๊ฒฝํ•˜๊ณ  ์‹ถ๋‹ค"๋Š” ์ •๋‹นํ™”๋ฅผ ๋“ค์–ด ๋ณธ ์ ์ด ์—†์Šต๋‹ˆ๋‹ค. "์ตœ์ ํ™” ์ค‘์ž…๋‹ˆ๋‹ค"์™ธ์—๋Š” ...)

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

๋‚ด ๊ถŒํ•œ์—†์ด ์ž ๊ธˆ ํŒŒ์ผ์ด ์†์ƒ๋˜์ง€ ์•Š์•˜ ์Œ์„ ํ™•์‹  ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฌธ์„œ๋ฅผ ์ฐพ์•„์•ผํ•˜๋Š” ๋ณ„๋„์˜ ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์€ ํŠนํžˆ ์‹คํŒจ๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜์žˆ๋Š” ๊ฒฝ์šฐ ๋งค์šฐ ํ˜ผ๋ž€ ์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋กœ์„œ ์ €๋Š” ์ œ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋„๊ตฌ๋ฅผ ์ œ์–ด ํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๊ธฐ๋Œ€ํ•˜๋ฉฐ์ด ๋™์ž‘์ด ์ €๋ฅผ ๋นผ์•—์•„๊ฐ€๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ž ๊ธˆ ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜์ง€ ์•Š๊ณ  ์ข…์†์„ฑ ์„ค์น˜์‹œ์—๋งŒ ์ž‘๋™ํ•˜๋„๋ก ๊ธฐ๋ณธ ๋™์ž‘์„ ๋’ค์ง‘๋Š” ๊ฒƒ์„ ๋‹ค์‹œ ๊ณ ๋ คํ•˜์‹ญ์‹œ์˜ค. package.json ๊ฐ€ ์ž ๊ธˆ ํŒŒ์ผ๊ณผ ๋™๊ธฐํ™”๋˜์ง€ ์•Š์•˜๋‹ค๋Š” ๊ฒฝ๊ณ ์™€ ํ•จ๊ป˜ ๋ฌด๊ฒฐ์„ฑ ๊ฒ€์‚ฌ๊ฐ€ ์‹ค์ œ๋กœ ํ•„์š”ํ•œ ๋ชจ๋“  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

yarn install

package.json ๋‚ด์— ๋‚˜์—ด๋œ ๋ชจ๋“  ์ข…์†์„ฑ์„ ๋กœ์ปฌ node_modules ํด๋”์— ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

yarn.lock ํŒŒ์ผ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

  • yarn.lock ์ด ์žˆ๊ณ  package.json ๋‚˜์—ด๋œ ๋ชจ๋“  ์ข…์†์„ฑ์„ ์ถฉ์กฑํ•˜๊ธฐ์— ์ถฉ๋ถ„ํ•˜๋ฉด yarn.lock ๊ธฐ๋ก ๋œ ์ •ํ™•ํ•œ ๋ฒ„์ „์ด ์„ค์น˜ ๋˜๊ณ  yarn.lock ๋Š” ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. . Yarn์€ ์ตœ์‹  ๋ฒ„์ „์„ ํ™•์ธํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • yarn.lock ๊ฐ€ ์—†๊ฑฐ๋‚˜ package.json ๋‚˜์—ด๋œ ๋ชจ๋“  ์ข…์†์„ฑ์„ ์ถฉ์กฑํ•˜๊ธฐ์— ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ (์˜ˆ : package.json ์ข…์†์„ฑ์„ ์ˆ˜๋™์œผ๋กœ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒฝ์šฐ) Yarn์€ package.json ์˜ ์ œ์•ฝ ์กฐ๊ฑด์„ ์ถฉ์กฑํ•˜๋Š” ์ตœ์‹  ๋ฒ„์ „์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ๋Š” yarn.lock ๋ฉ๋‹ˆ๋‹ค.

yarn.lock ์ด ์—…๋ฐ์ดํŠธ๋˜์ง€ ์•Š๋„๋กํ•˜๋ ค๋ฉด --frozen-lockfile .

์œ„์—์„œ ์–ธ๊ธ‰ ํ•œ ์ตœ์ ํ™”๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋ฌธ์„œ๊ฐ€ ์ž˜๋ชป๋˜์—ˆ๊ฑฐ๋‚˜ ๋‹น๋ถ„๊ฐ„ ๊ณ ๋ คํ•ด์•ผ ํ•  ๋ฒ„๊ทธ์ž…๋‹ˆ๊นŒ?

์ถ”์‹ . ์—ฌ์ „ํžˆ ๋ฐœ์ƒํ•˜๊ณ  yarn --frozen-lockfile ๋Š” ์‹คํŒจํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ €๋Š” ํ˜„์žฌ .yarnrc ํŒŒ์ผ์—์„œ --frozen-lockfile ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ์—์„œ yarn install ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ yarn์ด yarn.lock ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์„ ํšจ๊ณผ์ ์œผ๋กœ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ๋˜ํ•œ yarn add blahblah ๊ฐ€ ๋‚ด yarn.lock์„ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒŒ ์˜ฌ๋ฐ”๋ฅธ ํ–‰๋™์ž…๋‹ˆ๊นŒ, ์•„๋‹ˆ๋ฉด ๋ญ”๊ฐ€ ๋†“์น˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ์ „์ฒด ์Šค๋ ˆ๋“œ๋ฅผ ์ฝ์—ˆ์œผ๋ฉฐ ์ง€๊ธˆ์€ --frozen-lockfile ๊ฐ€ ๊ถŒ์žฅ๋˜๋Š” ์ ‘๊ทผ ๋ฐฉ์‹ ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

@konekoya ์˜ˆ, ํ˜„์žฌ ๋ฐ˜๋“œ์‹œ ์‚ฌ์šฉํ•ด์•ผํ•˜๋Š” ๊ฒƒ์ด ๋งž์Šต๋‹ˆ๋‹ค.

yarn install --frozen-lockfile

.yarnrc ์˜ ์„ค์ •์— ์˜์กดํ•˜๋ฉด yarn.lock ์ด ์—…๋ฐ์ดํŠธ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

.npmrc ๋ฐ .yarnrc ์˜ ์ฝ˜ํ…์ธ ์— ๋”ฐ๋ผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

yarn install --no-default-rc {dependency}

๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” ๊ทธ๊ฒƒ์— ์˜์กดํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค (rc ํŒŒ์ผ์— ๋‹ค๋ฅธ ์„ค์ •์ด ์ƒ๊ธฐ ์ž๋งˆ์ž ์ค‘๋‹จ๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.)

๋‚ด ์˜๊ฒฌ ๊ณผ ๊ด€๋ จ ๋ฌธ์ œ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค : # 4570, esp. ๋‚ด ๊ฒฐ๋ก  .

@ k0pernikus๋ฅผ ์ •๋ฆฌํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ์ง„์งœ ๋„ˆ ๋•๋ถ„์ด๋‹ค :)

@BYK ์™œ yarn์€ add / upgrade ๊ฐ€ ์‹คํ–‰๋  ๋•Œ๊ฐ€ ์•„๋‹ˆ๋ผ yarn install yarn.lock ์— ์ตœ์ ํ™”๋ฅผ ์ ์šฉํ•ฉ๋‹ˆ๊นŒ?

์—ฌ๊ธฐ์— @ spencer-brown์˜ ์˜๊ฒฌ์ด์ด ๋ฌธ์ œ๋ฅผ "ํ•ด๊ฒฐ"ํ•˜๋Š” ์—ด์‡ ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋ฐฉ๊ธˆ ์ง์ ‘ ํ…Œ์ŠคํŠธํ•˜๊ณ  yarn upgrade ๋ฅผ ์‹คํ–‰ ํ•œ ๋‹ค์Œ yarn "์ด๋ฏธ ์ตœ์‹  ์ƒํƒœ์ž…๋‹ˆ๋‹ค."๋ผ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ๋‚ด ์‚ญ์ œ ๊ทธ๋ž˜์„œ node_modules ๋‹ฌ๋ ธ๋‹ค yarn ๋‚ด๊ฐ€๋กœ๋ถ€ํ„ฐ๋ฐ›์€ ์ผ์„ ์ถ”์ง„ํ–ˆ๋‹ค๋ฉด ๋‹ค์Œ ๋‚ด ํ”„๋กœ์ ํŠธ์˜ ๋‹ค๋ฅธ DEVS๊ฐ€ ์ข…๋ฃŒ ํ•œ ๊ฒƒ "์ตœ์ ํ™”"์ž ๊ธˆ ํŒŒ์ผ๋กœ ์ด์–ด์ง€๋Š” yarn upgrade .

์ด์ œ yarn upgrade (๋ฐ yarn add )๊ฐ€ yarn install ์™€ ๋™์ผํ•œ ์ตœ์ ํ™”๋ฅผ ์‹คํ–‰ํ•œ๋‹ค๋ฉด ์ฒ˜์Œ์—๋Š”์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ธฐ์กด ๊ธฐ๋Šฅ์„ ์ค‘๋‹จํ•˜๊ณ  ์‹ถ์ง€ ์•Š๋‹ค๋Š” ์ด์•ผ๊ธฐ๊ฐ€ ๋งŽ์•˜๊ณ  yarn upgrade ๋ฐ yarn add ์ดํ›„์— ์ตœ์ ํ™”๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด ๋ฌด์–ธ๊ฐ€๋ฅผ ์ค‘๋‹จํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์œผ๋กœ ๋ชจ๋“  ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์ž ๊ธˆ ํŒŒ์ผ์„ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์—๊ฒŒ ํ‘ธ์‹œํ•˜๊ธฐ ์ „์— "์ตœ์ ํ™”"๋ฅผ ์ˆ˜ํ–‰ํ•˜๋„๋ก ์ž ๊ธˆ ํŒŒ์ผ์„ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•  ๋•Œ๋งˆ๋‹ค node_modules๋ฅผ ์‚ญ์ œํ•˜๋„๋ก ์ง€์‹œ ํ•  ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค. ์•„๋‹ˆ๋ฉด ๊ทธ๋“ค์€ yarn upgrade && yarn prune ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค-์•„๋งˆ๋„ ๊ทธ๊ฒƒ์ด ํŠธ๋ฆญ์„ ํ•  ๊ฒƒ์ž…๋‹ˆ๊นŒ?

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์œผ๋กœ ๋ชจ๋“  ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์ž ๊ธˆ ํŒŒ์ผ์„ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์—๊ฒŒ ํ‘ธ์‹œํ•˜๊ธฐ ์ „์— "์ตœ์ ํ™”"๋ฅผ ์ˆ˜ํ–‰ํ•˜๋„๋ก ์ž ๊ธˆ ํŒŒ์ผ์„ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•  ๋•Œ๋งˆ๋‹ค node_modules๋ฅผ ์‚ญ์ œํ•˜๋„๋ก ์ง€์‹œ ํ•  ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค. ์•„๋‹ˆ๋ฉด yarn upgrade && yarn prune ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—…๋ฐ์ดํŠธ : prune์„ ์ˆ˜๋™์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. _ "prune ๋ช…๋ น์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. yarn install ์€ (๋Š”) ๋ถˆํ•„์š”ํ•œ ํŒจํ‚ค์ง€๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค."._ ๊ทธ๋ฆฌ๊ณ  ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ด์œ ๋กœ install์„ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. _ "์ด๋ฏธ ์ตœ์‹  ์ƒํƒœ"์ž…๋‹ˆ๋‹ค. node_modules๋ฅผ ์‚ญ์ œ ํ•œ ๋‹ค์Œ yarn ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์ •๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ ํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ €์—๊ฒŒ yarn ๊ฐ€์žฅ ํฐ ํŒ๋งค ํฌ์ธํŠธ๋Š” ์˜ˆ์ธก ๊ฐ€๋Šฅํ•˜๊ณ  ์•ˆ์ •์ ์ธ ์ž ๊ธˆ ํŒŒ์ผ ๋™์ž‘์ž…๋‹ˆ๋‹ค. yarn install ์˜ ์ž ๊ธˆ ํŒŒ์ผ์„ ๋ณ€๊ฒฝํ•˜๋ฉด ์ •๋ง ๊ฑฑ์ •์ด๋ฉ๋‹ˆ๋‹ค.

์ €์—๊ฒŒ yarn ๊ฐ€์žฅ ํฐ ํŒ๋งค ํฌ์ธํŠธ๋Š” ์˜ˆ์ธก ๊ฐ€๋Šฅํ•˜๊ณ  ์•ˆ์ •์ ์ธ ์ž ๊ธˆ ํŒŒ์ผ ๋™์ž‘์ž…๋‹ˆ๋‹ค. yarn install ์˜ ์ž ๊ธˆ ํŒŒ์ผ์„ ๋ณ€๊ฒฝํ•˜๋ฉด ์ •๋ง ๊ฑฑ์ •์ด๋ฉ๋‹ˆ๋‹ค.

์ž ๊ธˆ ํŒŒ์ผ์€ ์„ค์น˜ ๋  ํ•ญ๋ชฉ์˜ ์ •ํ™•ํ•œ ์‚ฌ์–‘์œผ๋กœ ์ œ๊ณต๋˜๋ฏ€๋กœ ์„ค์น˜ ๋  ํ•ญ๋ชฉ์— ๋Œ€ํ•ด ๊ฑฑ์ •ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋™์ผํ•œ ์ž ๊ธˆ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋งค๋ฒˆ ๋™์ผํ•œ ์„ค์น˜๋ฅผ ๋ฐ›๊ฒŒ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋•Œ๋•Œ๋กœ yarn ๋Š” ์ž์ฒด์  ์ธ ์ด์œ ๋กœ ๊ฒฝ๊ณ ์—†์ด ์ž ๊ธˆ ํŒŒ์ผ ๋‚ด์šฉ์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ, "ํŒŒ์ผ ๋ณ€๊ฒฝ์€ ์„ค์น˜ ๋  ๋‚ด์šฉ์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๋Š”๋‹ค"๊ณ  ์ฃผ์žฅ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์™œ ๊ทธ๋ ‡๊ฒŒ ๋ถ„๋ช…ํ•œ ๋ณด์ฆ์„ํ•˜๊ณ  ํ˜ผ๋ž€์Šค๋Ÿฝ๊ฒŒ ๋งŒ๋“ค๊นŒ์š”? ๋ณ€๊ฒฝ๋œ ์ž ๊ธˆ ํŒŒ์ผ์„ ๋‹ค์‹œ ์ปค๋ฐ‹ํ•ด์•ผํ•˜๋Š”์ง€ ๊ถ๊ธˆํ•ดํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์™œ ๋ช…์„ฑ์— ๋Œ€ํ•œ ๋‹น์‹ ์˜ ์ฃผ์š” ์ฃผ์žฅ์„ ์„ค๋ฆฌํ•ฉ๋‹ˆ๊นŒ?

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

Node.js 13์—์„œ 14๋กœ ์ด๋™ํ•  ๋•Œ yarn install ์ˆ˜ํ–‰ ํ•  ๋•Œ ๋ชจ๋“  yarn.lock ํŒŒ์ผ์ด ๋ณ€๊ฒฝ๋œ์ด ๋™์ž‘์— ๋†€๋ž์Šต๋‹ˆ๋‹ค.

์–ด๋–ค ์‹ ์œผ๋กœ๋“  yarn.lock ํŒŒ์ผ์„ _optimizing_ํ•˜๋ฉด ๊ฒฝ๊ณ ๋ฅผ ๋‚ด๋ณด๋‚ด๋Š” ๊ฒƒ์ด ์ ์ ˆํ•œ ๋™์ž‘์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

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