Auto: npm์„ ๋ฒ„์ „ ์†Œ์Šค๋กœ ์‚ฌ์šฉ

์— ๋งŒ๋“  2019๋…„ 01์›” 08์ผ  ยท  10์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: intuit/auto

๊ธฐ๋Šฅ ์š”์ฒญ์ด ๋ฌธ์ œ์™€ ๊ด€๋ จ๋˜์–ด ์žˆ์Šต๋‹ˆ๊นŒ?

ํŠน์ • ๋ฒ„์ „์ด ์ด๋ฏธ ๋ฐฐํฌ๋˜์–ด ๋ฐฐํฌ์— ์‹คํŒจํ•˜๋Š” ๋ช‡ ๊ฐ€์ง€ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ž๋™ ๋ฆด๋ฆฌ์Šค๊ฐ€ ๋ฐœ์ƒํ•ด์•ผ ํ•˜๋Š” ์ •์ƒ์ ์ธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์•„๋‹ˆ์ง€๋งŒ... ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์–ด์ ฏ๋ฐค์— ๋ฒ„๊ทธ๊ฐ€ ์žˆ์—ˆ๊ณ  ๋ˆ„๊ตฐ๊ฐ€ package.json ๋ฒ„์ „์„ ์ถฉ๋Œ์‹œํ‚ค์ง€ ์•Š๊ณ  ์ˆ˜๋™์œผ๋กœ npm์— ๋ฐฐํฌํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ๋ชจ๋“  ๊ฒƒ์ด ์ˆ˜๋™์œผ๋กœ ๋ฒ„์ „์„ ๋ฒ”ํ•  ๋•Œ๊นŒ์ง€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์€ ์ž˜๋ชป๋œ ์ƒํƒœ๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์›ํ•˜๋Š” ์†”๋ฃจ์…˜ ์„ค๋ช…

package.json์˜ version ํ•„๋“œ๋ฅผ ๊ณ„์† ์—…๋ฐ์ดํŠธํ•˜๋˜ npm์˜ ๋ฒ„์ „์„ ์ถœ์ฒ˜๋กœ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. ๋ถˆ์ผ์น˜๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ๊ฒฝ๊ณ ๋ฅผ ํ‘œ์‹œํ•˜์ง€๋งŒ package.json์˜ ๋ฒ„์ „์ด ์•„๋‹Œ npm์˜ ๋ฒ„์ „์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฒ„์ „์„ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

enhancement

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

์—ฐ๊ฒฐ๋œ git ํƒœ๊ทธ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด latestRelease์— ์˜์กดํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์ตœ์‹  npm ๋ฒ„์ „์— ํƒœ๊ทธ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ „ํ™˜์€ ์˜ต์…˜์ด ์•„๋‹™๋‹ˆ๋‹ค(์ด ๋ฌธ์ œ์—์„œ ์„ค๋ช…ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์ด). .

์•„๋งˆ๋„ ๋งˆ์ง€๋ง‰ git ํƒœ๊ทธ์—์„œ ๋ฒ„์ „์ด ์ง€์ •๋œ ์ƒˆ ํ”Œ๋ž˜๊ทธ๊ฐ€ ํ•„์š”ํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. --from-git

๊ทธ๊ฒƒ์œผ๋กœ ํ•ด์ œ ๋ช…๋ น์ด ์ž‘๋™ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ณ€๊ฒฝ ๋กœ๊ทธ๊ฐ€ ์–ด๋–ป๊ฒŒ ์ƒ๊ฒผ๋Š”์ง€ ๋ถ„๋ฅ˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

--from-git ํ”Œ๋ž˜๊ทธ๋Š” NPM์—์„œ ๋ฌด์—‡์ด๋“  ํ™•์ธํ•˜๋Š” ๊ฒƒ์„ ์žฌ์ •์˜ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ ์ƒ๊ฐ์—๋Š” #173์„ ๋ณ‘ํ•ฉํ•  ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

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

์˜ค์˜ค ๋งˆ์Œ์— ๋“ญ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋ชจ๋…ธ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ๊ฒฝ์šฐ ๊นŒ๋‹ค๋กœ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

lerna์— ๋Œ€ํ•ด --force-publish=* ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฏ€๋กœ ๋ชจ๋“  ํŒจํ‚ค์ง€์— ๋งํฌ๋œ ๋ฒ„์ „์ด ์žˆ์–ด์•ผ ํ•˜๋ฏ€๋กœ ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์•ž์œผ๋กœ ํ•ด๋‹น ํ”Œ๋ž˜๊ทธ๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. idk

๋˜ํ•œ semver ๋ฌธ์ž์—ด๋งŒ ์‚ฌ์šฉํ•˜๋Š” npm version ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์‹ค์ œ๋กœ ์ง€๊ธˆ ์•„๋ฌด๋ฐ๋„ ํŒจํ‚ค์ง€ ๋ฒˆํ˜ธ๋ฅผ ์„ค์ •ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์Šค์Šค๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์€ ์–ด๋ ต์ง€ ์•Š๊ฒ ์ง€๋งŒ monorepos๋Š” ๋‹ค์‹œ ๊ฐ„๋‹จํ•˜์ง€ ์•Š์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋Œ€๋ถ€๋ถ„์˜ ๋ช…๋ น์€ ํƒœ๊ทธ์—์„œ๋„ ์ž‘๋™ํ•˜๋ฏ€๋กœ ๋ฆด๋ฆฌ์Šค์— ํƒœ๊ทธ๊ฐ€ ์ง€์ •๋˜์ง€ ์•Š์œผ๋ฉด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

"๋‚˜๋Š” ์ ์  ๋” "๋…๋ฆฝ์ ์ธ" ๋ฒ„์ „ ๊ด€๋ฆฌ ๋ชจ๋“œ๊ฐ€ ์‹ค์ˆ˜๋ผ๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์ด ํ•˜๋Š” ์ผ์€ ์‚ฌ๋žŒ๋“ค์ด ๋ฌด์ž‘์œ„ ํŒจํ‚ค์ง€๋ฅผ ๋‹จ์ผ ์ €์žฅ์†Œ์— ๋˜์ง€๊ณ  ๋™์‹œ์— ๋ฒ„์ „์„ ์ง€์ •ํ•ด์•ผ ํ•  ๋•Œ ๋ถˆํ‰ํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ๋ฟ์ž…๋‹ˆ๋‹ค." ~ lerna ๊ด€๋ฆฌ์ž๋กœ๋ถ€ํ„ฐ.

๋”ฐ๋ผ์„œ --force-publish=* ๋Š” ๊ดœ์ฐฎ์•„ ๋ณด์ž…๋‹ˆ๋‹ค.

--force-publish ์™€ ๋…๋ฆฝ ๋ฒ„์ „ ๊ด€๋ฆฌ๋Š” ๊ฐ™์€ ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค.
๊ธฐ๋ณธ์ ์œผ๋กœ lerna๋Š” ํŒจํ‚ค์ง€์— ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์žˆ๋Š” ๊ฒฝ์šฐ์—๋งŒ ์—…๋ฐ์ดํŠธ๋ฅผ ๊ฒŒ์‹œํ•ฉ๋‹ˆ๋‹ค. --force-publish=* ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋งˆ์ง€๋ง‰ ๊ฒŒ์‹œ ์ดํ›„ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์—†๋”๋ผ๋„ lerna๊ฐ€ ๋ชจ๋“  ํŒจํ‚ค์ง€์˜ ๋ฒ„์ „์„ ๊ฒŒ์‹œํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

์ฆ‰ A ํŒจํ‚ค์ง€์—๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์žˆ์ง€๋งŒ B ์—๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์—†์Šต๋‹ˆ๋‹ค. lerna๋Š” A ์˜ ์ƒˆ ๋ฒ„์ „๋งŒ ๊ฒŒ์‹œํ•ฉ๋‹ˆ๋‹ค( B ๋Š” ํ˜„์žฌ ๋ฒ„์ „์œผ๋กœ ์œ ์ง€๋จ). ๋‹ค์Œ ๋ฆด๋ฆฌ์Šค A ๋ฐ B ์—๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์žˆ์œผ๋ฉฐ ๋‘˜ ๋‹ค ๋™์ผํ•œ ์ƒˆ ๋ฒ„์ „์œผ๋กœ ๊ฒŒ์‹œ๋ฉ๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์ƒ๊ฐํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ(๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์ด ์šฐ๋ฆฌ๊ฐ€ ์ง€์›ํ•  ๊ฒƒ์ธ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Œ)์€ master (๋˜๋Š” ๋ฉ”์ธ ๋ธŒ๋žœ์น˜)๊ฐ€ ์•„๋‹Œ ๋ฆด๋ฆฌ์Šค์˜ ๊ฐ€๋Šฅ์„ฑ์ž…๋‹ˆ๋‹ค. ์ด ์‹œ์ ๊นŒ์ง€ ์šฐ๋ฆฌ๋Š” ํ•ญ์ƒ ๋ฆด๋ฆฌ์Šค๋ฅผ ์œ„ํ•œ 1๊ฐœ์˜ ๊ฒฝ๋กœ๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ๋“ค์€ ํ•ญ์ƒ ์„ ํ˜•์ž…๋‹ˆ๋‹ค(npm ๋˜๋Š” github์—์„œ latest ๋ฒ„์ „ ์‚ฌ์šฉ).

์ด์ „ ๋ฆด๋ฆฌ์Šค๋ฅผ ํŒจ์น˜ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์–ด๋–ป๊ฒŒ ๋ฉ๋‹ˆ๊นŒ? (1.x์—๋Š” ๋ฒ„๊ทธ๊ฐ€ ์žˆ๊ณ  master ๋Š” 2.x์— ์žˆ์ง€๋งŒ 1.xw/๋„ ์ˆ˜์ •ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.) lerna ๋˜๋Š” pkg ๋ฒ—์–ด๋‚˜๋Š” ๊ฒฝ์šฐ

์ด๊ฒƒ์„ git ํŠธ๋ฆฌ ์™ธ๋ถ€์—์„œ ์‚ฌ์šฉํ•˜๋„๋ก ๋ณ€๊ฒฝํ•˜๋ฉด npm(๋˜๋Š” ์ตœ์‹  ๋ฒ„์ „์„ ๊ฐ€์ ธ์˜ค๋Š” ๊ณณ)์— latest ๊ฐ€ 1๊ฐœ๋งŒ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ•ด๋‹น ๋™์ž‘์„ ์ง€์›ํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ข‹์€ ๊ธฐ๋Šฅ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ์•ฝ๊ฐ„์˜ ์ž‘์—…์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฒ„์ „:

  • ์ตœ์‹  ๋ฆด๋ฆฌ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ version ๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ํŒจํ‚ค์ง€ ๋ฒ„์ „์œผ๋กœ ์‰ฝ๊ฒŒ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
  • github์˜ ์ตœ์‹  ๋ฆด๋ฆฌ์Šค๊ฐ€ ๋ฌธ์ œ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ "์ตœ์‹  ๋ฆด๋ฆฌ์Šค"๋ฅผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์œผ๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 1.x์— ํŒจ์น˜๋ฅผ ๊ฒŒ์‹œํ•˜๋ฉด ์ตœ์‹  ๋ฆด๋ฆฌ์Šค๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

๋ฆด๋ฆฌ์Šค/๋ณ€๊ฒฝ ๋กœ๊ทธ

  • getCurrentVersion ๋Š” gt(lastRelease, lastVersion)์ธ ๊ฒฝ์šฐ lastRelease๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๊ฒƒ๋„ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์šฐ๋ฆฌ๊ฐ€ ์ด๋ฏธ git ํŠธ๋ฆฌ ์™ธ๋ถ€์—์„œ ๋ฌผ๊ฑด์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋งž์Šต๋‹ˆ๊นŒ?

์—ฐ๊ฒฐ๋œ git ํƒœ๊ทธ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด latestRelease์— ์˜์กดํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์ตœ์‹  npm ๋ฒ„์ „์— ํƒœ๊ทธ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ „ํ™˜์€ ์˜ต์…˜์ด ์•„๋‹™๋‹ˆ๋‹ค(์ด ๋ฌธ์ œ์—์„œ ์„ค๋ช…ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์ด). .

์•„๋งˆ๋„ ๋งˆ์ง€๋ง‰ git ํƒœ๊ทธ์—์„œ ๋ฒ„์ „์ด ์ง€์ •๋œ ์ƒˆ ํ”Œ๋ž˜๊ทธ๊ฐ€ ํ•„์š”ํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. --from-git

๊ทธ๊ฒƒ์œผ๋กœ ํ•ด์ œ ๋ช…๋ น์ด ์ž‘๋™ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ณ€๊ฒฝ ๋กœ๊ทธ๊ฐ€ ์–ด๋–ป๊ฒŒ ์ƒ๊ฒผ๋Š”์ง€ ๋ถ„๋ฅ˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

--from-git ํ”Œ๋ž˜๊ทธ๋Š” NPM์—์„œ ๋ฌด์—‡์ด๋“  ํ™•์ธํ•˜๋Š” ๊ฒƒ์„ ์žฌ์ •์˜ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ ์ƒ๊ฐ์—๋Š” #173์„ ๋ณ‘ํ•ฉํ•  ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

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