Yarn: ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ์„ ํƒ์  ์ข…์†์„ฑ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

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

ํ˜„์žฌ Yarn ๋™์ž‘์€ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” (๋”ฐ๋ผ์„œ ๊ฑด๋„ˆ ๋›ด) ์„ ํƒ์  ์ข…์†์„ฑ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•œ๋‹ค๋Š” ์ ์—์„œ npm๊ณผ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค. Windows์˜ fsevents ์ด ์ด์— ๋Œ€ํ•œ ์ข‹์€ ์˜ˆ์ž…๋‹ˆ๋‹ค.

๊ฒฝ๊ณ ๋Š” ๊ฑฐ์˜ ์‹คํ–‰ ๋ถˆ๊ฐ€๋Šฅํ•˜๊ณ  ์ดˆ๋ณด์ž์—๊ฒŒ๋Š” ์•ฝ๊ฐ„ ๋ฌด์„ญ๊ฒŒ ๋ณด์ด๊ธฐ ๋•Œ๋ฌธ์— ๋กœ๊ทธ ์ˆ˜์ค€์„ ๋‚ฎ์ถ”๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. Yarn์— ๋กœ๊ทธ ์ˆ˜์ค€ ๊ฐœ๋…์ด ์žˆ๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ Yarn ์ž์ฒด๋ฅผ ๊ตฌ์ฒด์ ์œผ๋กœ ๋””๋ฒ„๊น…ํ•˜์ง€ ์•Š๋Š” ํ•œ์ด ๊ฒฝ๊ณ ๋ฅผ๋ณด๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํ•ด๋‹นํ•˜๋Š” npm ๋ฌธ์ œ๋Š” ๊ด‘๋ฒ”์œ„ํ•˜๊ฒŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค (์ž๋™ ์ข…๋ฃŒ๋˜์—ˆ์ง€๋งŒ) : https://github.com/npm/npm/issues/11632

help wanted triaged

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

์•ˆ๋…•ํ•˜์„ธ์š”.

"์ˆ˜์ •"์ด๋ž€ ๋ฌด์—‡์„ ์˜๋ฏธํ•ฉ๋‹ˆ๊นŒ? https://github.com/npm/npm/issues/11632์— ์„ค๋ช… ๋œ๋Œ€๋กœ ๋ชจ๋“  ๊ฒƒ์ด ์˜๋„ ํ•œ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ถ€ ํŒจํ‚ค์ง€๋Š” ํŠนํžˆ macOS์—์„œ fsevents ์— ์˜์กดํ•˜์ง€๋งŒ (์šฐ์ˆ˜ํ•œ ๊ฒฝํ—˜์„ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์—) Windows / Linux์—์„œ ๋‹ค๋ฅธ ๋™์ž‘์œผ๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค. fsevents ์ด Windows์™€ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์‚ฌ์‹ค์€ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋“œ๋Ÿฌ๋‚˜์„œ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ํ”Œ๋žซํผ ๋ณ„ ์ข…์†์„ฑ ๊ตฌํ˜„ ์„ธ๋ถ€ ์‚ฌํ•ญ ์ผ๋ฟ์ž…๋‹ˆ๋‹ค. ๊ฑฐ๊ธฐ์—๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์กฐ์น˜๋ฅผ ์ทจํ•  ์ˆ˜์žˆ๋Š” ๊ฒƒ์ด ์—†์œผ๋ฉฐ ๋†€๋ผ์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

๋‚˜์—๊ฒŒ ๊ฒฝ๊ณ ์˜ ์ ์ ˆํ•œ ์‚ฌ์šฉ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

๊ทธ๋ƒฅ ์ˆจ๊ธฐ๋Š” ๊ฒƒ๋ณด๋‹ค ๊ฒฝ๊ณ ๋ฅผ์ฃผ๋Š” ๊ฒƒ์„ ๊ณ ์น˜๋Š” ๊ฒƒ์ด ๋” ๋‚ซ์ง€ ์•Š์„๊นŒ์š”?

์•ˆ๋…•ํ•˜์„ธ์š”.

"์ˆ˜์ •"์ด๋ž€ ๋ฌด์—‡์„ ์˜๋ฏธํ•ฉ๋‹ˆ๊นŒ? https://github.com/npm/npm/issues/11632์— ์„ค๋ช… ๋œ๋Œ€๋กœ ๋ชจ๋“  ๊ฒƒ์ด ์˜๋„ ํ•œ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ถ€ ํŒจํ‚ค์ง€๋Š” ํŠนํžˆ macOS์—์„œ fsevents ์— ์˜์กดํ•˜์ง€๋งŒ (์šฐ์ˆ˜ํ•œ ๊ฒฝํ—˜์„ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์—) Windows / Linux์—์„œ ๋‹ค๋ฅธ ๋™์ž‘์œผ๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค. fsevents ์ด Windows์™€ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์‚ฌ์‹ค์€ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋“œ๋Ÿฌ๋‚˜์„œ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ํ”Œ๋žซํผ ๋ณ„ ์ข…์†์„ฑ ๊ตฌํ˜„ ์„ธ๋ถ€ ์‚ฌํ•ญ ์ผ๋ฟ์ž…๋‹ˆ๋‹ค. ๊ฑฐ๊ธฐ์—๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์กฐ์น˜๋ฅผ ์ทจํ•  ์ˆ˜์žˆ๋Š” ๊ฒƒ์ด ์—†์œผ๋ฉฐ ๋†€๋ผ์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํŠน์ • OS์— ๋Œ€ํ•œ ์ข…์†์„ฑ์„ ์š”๊ตฌํ•˜๊ณ  ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์ž‘๋™ ๋ฐฉ์‹์ด์–ด์„œ๋Š” ์•ˆ๋œ๋‹ค๊ณ  ๋งํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.
์ด ๋ฌธ์ œ๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๋‹ค๋ฅธ ํŒจํ‚ค์ง€๊ฐ€ ์žˆ๋‹ค๊ณ  ํ™•์‹ ํ•˜์ง€๋งŒ fsevents ๊ฐ€ ๊ฐ€์žฅ ์šฐ์„ธํ•˜๋ฉฐ babel , webpack , create-react-app , ๊ณง sane ๋ฐ jest . ํ•œ ํŒจํ‚ค์ง€์˜ ๋‹จ์ ์œผ๋กœ ์ธํ•ด ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž์˜ ๋™์ž‘์„ ๋ฐ”๊พธ๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ๋‚˜์€ ํŒŒ์ผ ๊ฐ์‹œ ์†”๋ฃจ์…˜์„ ์ฐพ๋Š” ๊ฒƒ์ด ๋” ์ƒ์‚ฐ์ ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

fsevents (๋˜๋Š” fsevents ์ž์ฒด)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํŒจํ‚ค์ง€์— ๋Œ€ํ•œ ๋Œ€์ฒด ์ œ์•ˆ์ด ์žˆ๋‹ค๋ฉด ๋“ฃ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค! ๋‚˜๋Š” OS์— ํŠน์ •ํ•œ ํŒจํ‚ค์ง€๋ฅผ ๊ฐ–๋Š” ๊ฒƒ์— ๋Œ€ํ•ด "์ž˜๋ชป๋œ"๊ฒƒ์€ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ์‹ค์ œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ์ผ๋ถ€ ๋ฌธ์ œ๋Š” ํ”Œ๋žซํผ์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

์˜๊ฒฌ์ด ๊ฐˆ๋ผ์ง„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
์‹คํ–‰ ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒƒ์— ๋Œ€ํ•œ ๊ฒฝ๊ณ ๋Š” ์„ฑ ๊ฐ€์‹ค ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
๋ฐ˜๋ฉด์— "์ด ๋ชจ๋“ˆ์€ Node.js <4์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค"์™€ ๊ฐ™์€ ์œ ์‚ฌํ•œ ๊ฒฝ๊ณ ๋Š” ๋งค์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
์‚ฌ๋žŒ๋“ค์ด ๊ฒฝ๊ณ ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋„๋ก ์„ค์ •ํ•  ์ˆ˜์žˆ๋Š” ์„ค์ •์ด ์žˆ์Šต๋‹ˆ๊นŒ?

@gaearon ์ด ์˜คํ”ˆ ์†Œ์Šค ์ €์žฅ์†Œ์ด๋ฏ€๋กœ PR์ด ๋กœ๊ทธ ์ˆ˜์ค€๋ณ„๋กœ ์–ต์ œ ํ•  CLI ํ”Œ๋ž˜๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์€

๋ฟก๋ฟก

๋กœ๊ทธ ์ˆ˜์ค€์œผ๋กœ ์–ต์ œ ํ•  CLI ํ”Œ๋ž˜๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” PR์€ ์–ด๋–ป์Šต๋‹ˆ๊นŒ?

๋‚˜๋Š” PR์„ ๋ณด๋‚ด๊ณ  ์‹ถ์—ˆ์ง€๋งŒ @bestander ์ฒ˜๋Ÿผ ๋‹ค๋ฅธ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ํ’€ ํƒ€์ž„์œผ๋กœ ์ผํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ๋ถˆํ–‰ํžˆ๋„์ด ํŠน์ • ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ์ž‘์—… ํ•  ์‹œ๊ฐ„์ด ์—†์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ๋ฐ”๋žŒ์งํ•œ ์ง€ ์•„๋‹Œ์ง€ ๋…ผ์˜ํ•˜๊ธฐ ์œ„ํ•ด ๋ฌธ์ œ๋ฅผ ์ œ๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค.

์ฐธ์กฐํ•˜๋Š” ํŒจํ‚ค์ง€์˜ ๋‹ค์šด ์ŠคํŠธ๋ฆผ ๋ฌธ์ œ์— ๋Œ€ํ•ด ๋ฌธ์„œํ™”ํ•˜๋Š” ๊ฒƒ์€ ์šฐ์ˆ˜ํ•œ ์ปดํ“จํ„ฐ์ธ์ง€ ์•„๋‹ˆ๋ฉด ๋Œ€๋ถ€๋ถ„์˜ ๋™์ผํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ ํ•  ์ˆ˜์žˆ๋Š” $ 35 RPi์ธ์ง€์— ๊ด€๊ณ„์—†์ด ๋งค์šฐ ๋ถ€์ •ํ™•ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋Œ“๊ธ€์„ ์ดํ•ดํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” "๋‹ค์šด ์ŠคํŠธ๋ฆผ ๋ฌธ์ œ์— ๋Œ€ํ•œ ๋…ผ๋ฌธ"์„ ์ œ์•ˆํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. fsevents ์€ (๋Š”) ์ž˜๋ชป๋œ ์ผ์ด ์—†์Šต๋‹ˆ๋‹ค. macOS์—์„œ๋งŒ ์œ ์šฉํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์—๋Š” ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ํ‘œํ˜„ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. webpack ์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ํŒจํ‚ค์ง€๋Š” macOS์—์„œ fsevents ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์ง€๋งŒ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์—์„œ๋Š” ๊ฑด๋„ˆ ๋›ฐ๊ธฐ๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์€ yarn๊ณผ npm์ดํ•˜๋Š” ์ผ์ž…๋‹ˆ๋‹ค.

npm๊ณผ yarn ๋ชจ๋‘ ๋ฌด์„ญ๊ฒŒ ๋ณด์ด์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” ๋ฌธ์ œ๋ฅผ ๋‚˜ํƒ€๋‚ด์ง€ ์•Š๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ์ธ์‡„ํ•œ๋‹ค๋Š” ์ ์„ ์ œ์™ธํ•˜๋ฉด ๋ชจ๋“  ๊ฒƒ์ด ์ด๋ฏธ ์˜๋„ ํ•œ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ชจ๋“  ๊ฒƒ์ด ์˜๋„ ํ•œ๋Œ€๋กœ ์ž‘๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ์ž๊ฐ€ ๊ฑฑ์ •ํ•  ์ด์œ ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋‚ด ์š”์ ์€ ์ž˜๋ชป๋œ ๊ฒƒ์ด ์—†์„ ๋•Œ ์‚ฌ์šฉ์ž๋ฅผ ๊ฒ์ฃผ์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ช…ํ™•ํ•˜์ง€ ์•Š๋‹ค๋ฉด ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์ด ๋‚ด๊ฐ€ ์˜ˆ์ƒํ–ˆ๋˜ ๊ฒƒ๋ณด๋‹ค ๋” ๋…ผ์Ÿ์˜ ์—ฌ์ง€๊ฐ€ ์žˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿผํ•˜์ง€ ๋ง์ž. ๋‚˜๋Š”์ด ์–ธ๋•์—์„œ ์ฃฝ์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๐Ÿ˜›

๋ฐ˜๋ฉด์— "์ด ๋ชจ๋“ˆ์€ Node.js <4์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค"์™€ ๊ฐ™์€ ์œ ์‚ฌํ•œ ๊ฒฝ๊ณ ๋Š” ๋งค์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

...ํ•˜์ง€๋งŒ ์‹คํ–‰ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. Node.js ๋ฒ„์ „์„ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

...ํ•˜์ง€๋งŒ ์‹คํ–‰ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. Node.js ๋ฒ„์ „์„ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

OS ์ œํ•œ๋„ ์‹คํ–‰ ๊ฐ€๋Šฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์งˆ๋ฌธ์€ Mac์ด ์•„๋‹Œ IO ๋„๊ตฌ๋ฅผ ์„ค์น˜ํ•  ๋•Œ๋งˆ๋‹ค ๋™์ผํ•œ ๊ฒฝ๊ณ ๋ฅผ ํ‘œ์‹œ ํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€์ž…๋‹ˆ๋‹ค. ์ข…์†์„ฑ์ด ์„ ํƒ ์‚ฌํ•ญ ์ผ ๋•Œ Windows ์‚ฌ์šฉ์ž์—๊ฒŒ ํ‘œ์‹œํ•˜์ง€ ์•Š์„ ๊ธฐํšŒ๋ฅผ ์ฃผ์–ด์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์‹œ ์—ด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋” ๋…ผ์˜ ํ•  ๊ฐ€์น˜๊ฐ€์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ "์ •๋ณด"๋กœ๊ทธ ์ˆ˜์ค€์œผ๋กœ ๋‹ค์šด ๊ทธ๋ ˆ์ด๋“œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (๊ทธ๋ฆฌ๊ณ  npm๊ณผ ๊ฐ™์€ ๋กœ๊ทธ ์ˆ˜์ค€ ๊ฐœ๋…์„ ๋„์ž…).

@gearon ๋‘ ๊ฐ€์ง€ ๋ฌด๋ฃŒ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์ œ๊ณตํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ์ฝ๊ณ  ์ œ์•ˆ์„ ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ €๋Š” "๊ฑฐ์˜ ์‹คํ–‰ ๋ถˆ๊ฐ€๋Šฅํ•œ"๋ฌด์–ธ๊ฐ€๋ฅผ ์œ„ํ•ด ์ดˆ๋ณด์ž์—๊ฒŒ ๋ฌด์„œ์šด ๊ฒฝํ—˜์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋Š” ๊ฒƒ์„ ๊ฐœ์ธ์ ์œผ๋กœ ๋ฐ›์•„๋“ค์ด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์œ„์—์„œ Webpack์„ ์–ธ๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜์—๊ฒŒ Webpack ์ž์ฒด๋Š” ๋ฌด์„ญ๊ณ  ๊ฒฐ๊ณผ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ ์ค‘์— ์˜ฌ๋ฐ”๋ฅธ ๊ธฐ๋Šฅ ์„ธํŠธ๋ฅผ ์ฃผ์‹œํ•˜๋ฉด ์›์‚ฌ๋กœ ํ•  ์ˆ˜์žˆ๋Š” ๋งŽ์€ ์ผ๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์ •๋ง๋กœ ๊ทธ๋Ÿฌํ•œ ๋ชฉํ‘œ๋ฅผ ๋‹ฌ์„ฑํ•˜๋Š” ๋ฐ ๋„์›€์ด๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ์ œ์•ˆ์ž…๋‹ˆ๊นŒ, ์•„๋‹ˆ๋ฉด ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ์–ธ๋•์„ ์˜ค๋ฅด๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

@gaearon ์—์„œ ์„ค๋ช…ํ•œ ๊ฒƒ๊ณผ ๋น„์Šทํ•œ ์ƒํ™ฉ์ด

yarn upgrade ์‹คํ–‰ํ•˜๋ฉด ์ฒ˜์Œ์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

warning gulp > vinyl-fs > glob-stream > [email protected] ...
warning gulp > vinyl-fs > glob-watcher > gaze > globule > [email protected] ...
warning gulp > vinyl-fs > glob-watcher > gaze > globule > glob > [email protected] ...

๊ทธ๋Ÿฌ๋‚˜ ๋‹ค์Œ ๋ชฉ๋ก์„ ๋ณด๋ฉด ์ด๋Ÿฌํ•œ ์ข…์†์„ฑ์ด ์ตœ์‹  ์ƒํƒœ์ž…๋‹ˆ๋‹ค.

์ €๋Š” @gaearon์— ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ์ €๋Š” Node๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋น„๊ต์  ์ฒ˜์Œ์ด๊ณ  npm์„ ์‚ฌ์šฉํ•˜์—ฌ Yarn์œผ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€ ๊ฐ€ ํŠนํžˆ ์ €์—๊ฒŒ ์•ฝ๊ฐ„ ๋ฌด์„ญ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์€ ๋‚ด๊ฐ€ ๊ณ ์น  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•”์‹œํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋Š” ๊ฒƒ๋„ ์•ฝ๊ฐ„ _ ์˜คํ•ด์˜ ์†Œ์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค _.

์ œ ์ƒ๊ฐ์—๋Š” ์ด๋Ÿฌํ•œ ๊ฒฝ๊ณ ๊ฐ€ ์นœ์ˆ™ํ•œ ์ •๋ณด๊ฐ€ ๋˜๊ฑฐ๋‚˜ ์ „ํ˜€ ํ‘œ์‹œ๋˜์ง€ ์•Š์•„์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ์ข…์†์„ฑ์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ฒฝ๊ณ ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

์™œ ์šฐ๋ฆฌ๋Š” _scary_์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์œ ์น˜์›์ด ์•„๋‹ˆ๋ผ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์ž…๋‹ˆ๋‹ค.

@wtgtybhertgeghgtwtg ๋‚˜๋ฅผ ๋˜์ง€๋Š” ๊ฒƒ์€ ๊ฒฝ๊ณ ๊ฐ€ _me_์—๊ฒŒ ๋‚ด๊ฐ€ ์—…๋ฐ์ดํŠธ ํ•  ์ˆ˜์—†๋Š” ๊ฒƒ์„ ์—…๋ฐ์ดํŠธํ•˜๋„๋ก ์š”์ฒญํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ์—๋Š” ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ์ข…์†์„ฑ์„ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ์ด ์•„๋‹ˆ์ง€๋งŒ (Glob์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค), ๊ท€ํ•˜์˜ ์š”์ ์„ ํ™•์ธํ•˜๊ณ  ๊ฒฝ๊ณ ๊ฐ€๋˜์–ด์•ผํ•œ๋‹ค๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋” ๋งŽ์€ ์ •๋ณด๋ฅผ ์ œ๊ณต ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. "[dependency_A]๋Š” ์˜ค๋ž˜๋œ [dependency_B]"๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰ , a) _my_ ์ž˜๋ชป์ด ์•„๋‹ˆ๊ณ  ์˜ค๋ฅ˜๊ฐ€ ๋‚ด์ชฝ์— ์žˆ์ง€ ์•Š๋‹ค๋Š” ์‚ฌ์‹ค์„ ๋ฐ”๋กœ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. b) ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ข…๋ฅ˜์˜ ์ •๋ณด๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ž์‹ ์˜ ์ž…์žฅ์—์„œ ๋ฌด์—‡์ด ์ž˜๋ชป๋˜์—ˆ๋Š”์ง€ ์•Œ์•„ ๋‚ด๋ ค๊ณ  ์• ์“ฐ๋Š” ํ† ๋ผ ๊ตฌ๋ฉ์— ๋น ์ง€์ง€ ์•Š๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋จผ์ € ๋ฉ”์‹œ์ง€๋ฅผ ๊ฐœ์„ ํ•˜๊ณ  PR์„ ๋ณด๋‚ด๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

2017 ๋…„ 7 ์›” 7 ์ผ 14:08์— Daniel Blake [email protected] ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

@wtgtybhertgeghgtwtg https://github.com/wtgtybhertgeghgtwtg ๋˜์ง€๋Š” ๊ฒƒ
๋‚˜ ๊ฒฝ๊ณ ๊ฐ€ ๋‚˜๋Š” ์—…๋ฐ์ดํŠธ ํ•  ์ˆ˜์—†๋Š” ๋ฌด์–ธ๊ฐ€๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋ผ๊ณ  ์š”๊ตฌํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.
์ด ๊ฒฝ์šฐ์—๋Š” ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ์ข…์†์„ฑ์„ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ์ด ์•„๋‹™๋‹ˆ๋‹ค.
Glob์ด ๊ทธ๋ ‡๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค), ๋‚˜๋Š” ๋‹น์‹ ์˜ ์š”์ ์„ ๋ณด์•˜๊ณ  ๊ทธ๊ฒƒ์ด ๊ฒฝ๊ณ ์ด์–ด์•ผํ•œ๋‹ค๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‚˜๋Š”
๋” ๋งŽ์€ ์ •๋ณด๋ฅผ ์ œ๊ณต ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•œ ๊ฒƒ
"[dependency_A]๊ฐ€ ์˜ค๋ž˜๋œ [dependency_B]๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค."-๋ฐ”๋กœ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
a) ๊ทธ๊ฒƒ์€ ๋‚ด ์ž˜๋ชป์ด ์•„๋‹ˆ๊ณ , ์˜ค๋ฅ˜๊ฐ€ ๋‚ด์ชฝ์— ์žˆ์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ, ๊ทธ๋ฆฌ๊ณ 
b) ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด ์–ด๋””๋กœ ๊ฐ€์•ผํ•ฉ๋‹ˆ๊นŒ? ๊ทธ๋Ÿฐ ์ข…๋ฅ˜์˜
์ •๋ณด๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์•Œ์•„ ๋‚ด๋ ค๋Š” ํ† ๋ผ ๊ตฌ๋ฉ์— ๋น ์ง€์ง€ ์•Š๋„๋ก
๊ทธ๋“ค์˜ ๋์— ๋ฌด์—‡์ด ์ž˜๋ชป๋˜์—ˆ๋Š”์ง€.

โ€”
์—ด๊ธฐ / ๋‹ซ๊ธฐ ์ƒํƒœ๋ฅผ ์ˆ˜์ •ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ˆ˜์‹  ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/yarnpkg/yarn/issues/3738#issuecomment-313793331 ๋˜๋Š” ์Œ์†Œ๊ฑฐ
์‹ค
https://github.com/notifications/unsubscribe-auth/ACBdWI1Ks6bSYH_BStzm_b3-ne3bUMT3ks5sLp5PgaJpZM4OGrsi
.

๋‚˜๋ฅผ ๋˜์ง€๋Š” ๊ฒƒ์€ ๊ฒฝ๊ณ ๊ฐ€ ์—…๋ฐ์ดํŠธ ํ•  ์ˆ˜์—†๋Š” ํ•ญ๋ชฉ์„ ์—…๋ฐ์ดํŠธํ•˜๋„๋ก ์š”์ฒญํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์˜์กด์„ฑ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ๋‹น์‹ ์€ ํ™•์‹คํžˆ ๊ทธ๊ฒƒ๊ณผ ๊ทธ๊ฒƒ์ด ๊ฐ€์ ธ ์˜ค๋Š” ๋ชจ๋“  ๊ฒƒ์„ ์†Œ์œ ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ๊ทธ์™€ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋Š” ๊ฒƒ์„ ํฌํฌํ•˜๊ณ  ๊ฐœ์„  ํ•  ์ˆ˜์žˆ๋Š” ๋Šฅ๋ ฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์ด ๋‹น์‹ ์„ ๊ดด๋กญ ํžˆ๋ฉด ์•„๋งˆ๋„ ์‚ฌ์šฉํ•  ๊ฐ€์น˜๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์ฃผ์žฅํ•˜๋Š” ๋™์•ˆ

warning gulp > vinyl-fs > glob-stream > [email protected] ...
warning gulp > vinyl-fs > glob-watcher > gaze > globule > [email protected] ...
warning gulp > vinyl-fs > glob-watcher > gaze > globule > glob > [email protected] ...

๋‹น์‹ ์ด ์•Œ์•„์•ผ ํ•  ๊ฒƒ์„ ๋งํ•ด์ค๋‹ˆ๋‹ค. ์ €๋Š” ๊ทธ๊ฒƒ์ด ์ข€ ๋” ์ž˜ ์š”์•ฝ๋˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํ‘œํ˜„ ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์— ๋™์˜ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ํ•˜๋‚˜์˜ ํŠน์ • ์‚ฌ๋ก€์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” ์ด๊ฒƒ์ด ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๊ฒฝ๊ณ ์— ๋Œ€ํ•ด ์ž์ „๊ฑฐ ํ†ตํ–‰๋กœ๊ฐ€๋˜๋Š” ๊ฒƒ์„ ์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

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

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

๋‚˜๋Š” ์ด๊ฒƒ์ด ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๊ฒฝ๊ณ ์— ๋Œ€ํ•ด ์ž์ „๊ฑฐ ํ†ตํ–‰๋กœ๊ฐ€๋˜๋Š” ๊ฒƒ์„ ์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ด€๋ จ์ด ์žˆ๋‹ค๋ฉด ๋Œ€ํ™”๋Š” ๋ฐ”๋กœ ์—ฌ๊ธฐ๋กœ ๊ฐ€์•ผํ•ฉ๋‹ˆ๋‹ค. ๋ฏธํ•ด๊ฒฐ ๋ฌธ์ œ์˜ ์ˆ˜๋ฅผ ํ™•์ธํ•˜์„ธ์š”. ์ด๋Š” ๋ฒ„๊ทธ๊ฐ€ ์•„๋‹ˆ๋ผ ๊ฐœ์„  ์š”์ฒญ์ž…๋‹ˆ๋‹ค.

์ข‹์•„. ๊ตฌ๋…์„ ์ทจ์†Œ ํ•˜๊ฒ ์ง€๋งŒ์ด ํ† ๋ก ์ด ์•ž์œผ๋กœ๋„ ๊ณ„์† ์ง‘์ค‘๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ์ฐธ์—ฌํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

๊ด€๋ฆฌ์ž ์—ฌ๋Ÿฌ๋ถ„, ์ด๊ฒƒ์„ ๋‹ซ์œผ์‹ญ์‹œ์˜ค. ๋”ฐ๋ผ๊ฐˆ ์‚ฌ๋žŒ์ด ์—†์Šต๋‹ˆ๋‹ค.

๋‘ ๊ฐ€์ง€ ๋ฌด๋ฃŒ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์ œ๊ณตํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

๊ฐœ๋ฐœ ์ค‘์— ์˜ฌ๋ฐ”๋ฅธ ๊ธฐ๋Šฅ ์„ธํŠธ๋ฅผ ์ฃผ์‹œํ•˜๋ฉด ์›์‚ฌ๋กœ ํ•  ์ˆ˜์žˆ๋Š” ๋งŽ์€ ์ผ๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฏธํ•ด๊ฒฐ ๋ฌธ์ œ์˜ ์ˆ˜๋ฅผ ํ™•์ธํ•˜์„ธ์š”. ์ด๋Š” ๋ฒ„๊ทธ๊ฐ€ ์•„๋‹ˆ๋ผ ๊ฐœ์„  ์š”์ฒญ์ž…๋‹ˆ๋‹ค.

๊ด€๋ฆฌ์ž ์—ฌ๋Ÿฌ๋ถ„, ์ด๊ฒƒ์„ ๋‹ซ์œผ์‹ญ์‹œ์˜ค.

@jhabdas ,์ด ๋ฌธ์ œ์— ๋” ๋งŽ์€ ์‹œ๊ฐ„์„ ํ• ์•  ํ•  ์ˆ˜ ์žˆ๋„๋ก

์ฃ„์†กํ•˜์ง€๋งŒ ์ด๋ฏธ ๋ง์”€ ๋“œ๋ ธ๋“ฏ์ด์ด ๋ฌธ์ œ์— ์‹œ๊ฐ„์„ ํ• ์•  ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ €๋Š” Yarn ๊ด€๋ฆฌ์ž๊ฐ€ ์šฐ์„  ์ˆœ์œ„๋ฅผ ์ •ํ•  ๋•Œ ์˜ฌ๋ฐ”๋ฅธ ์„ ํƒ์„ ํ•  ๊ฒƒ์ด๋ผ๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ์˜ ์šฐ์„  ์ˆœ์œ„๊ฐ€ ๋„ˆ๋ฌด ๋‚ฎ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์ •๋‹นํ•˜๊ฒŒ ๋ฌด์‹œํ•˜๊ฑฐ๋‚˜ ์ข…๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์˜คํ•ดํ•˜๊ณ  ๋‹น์‹ ์ด์ด ์ €์žฅ์†Œ๋ฅผ ์œ ์ง€ํ•˜๋Š” ๋ฐ ๊ด€์—ฌํ•œ๋‹ค๋ฉด ์šฉ์„œ ํ•ด์ฃผ์„ธ์š”. ์ด ๊ฒฝ์šฐ ์–ธ์ œ๋“ ์ง€์ด ๋ฌธ์ œ๋ฅผ ์ข…๋ฃŒํ•˜์‹ญ์‹œ์˜ค.

๊ทธ๋Ÿฌ๋‚˜ ์ €๋Š” "๊ฑฐ์˜ ์‹คํ–‰ ๋ถˆ๊ฐ€๋Šฅํ•œ"๋ฌด์–ธ๊ฐ€๋ฅผ ์œ„ํ•ด ์ดˆ๋ณด์ž์—๊ฒŒ ๋ฌด์„œ์šด ๊ฒฝํ—˜์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋Š” ๊ฒƒ์„ ๊ฐœ์ธ์ ์œผ๋กœ ๋ฐ›์•„๋“ค์ด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

create-react-app ์„ ์„ค์น˜ ํ•œ ๋‹ค์Œ create-react-app myapp ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์„ค์น˜์˜ ์ผ๋ถ€๋กœ ๊ฒฝ๊ณ ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

warning [email protected]: The platform "win32" is incompatible with this module.
info "[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.

npm ๊ฒฝ๊ณ ๋Š” ๋” ๋ฌด์„ญ์Šต๋‹ˆ๋‹ค.

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/react-scripts/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules/react-scripts/node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

๋‹คํ–‰ํžˆ npm์„ ์‚ฌ์šฉํ•˜๋ฉด Yarn์ด ์ง€์ •ํ•˜์ง€ ์•Š๋Š” ๋กœ๊ทธ ์ˆ˜์ค€์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ถˆํ–‰ํžˆ๋„ ์šฐ๋ฆฌ๋Š”์ด ๋•Œ๋ฌธ์— ๋ชจ๋“  npm ๊ฒฝ๊ณ ๋ฅผ ๋ฌด์‹œํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์ด ๊ฒฝ๊ณ ๊ฐ€ ๋ฌธ์ œ๊ฐ€๋˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๋‹น์‹ ๊ณผ ๊ฐ™์€ ์ˆ™๋ จ ๋œ ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” ๋ฌธ์ œ๊ฐ€๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Create React App์€ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ React ๋ฐ npm ์ƒํƒœ๊ณ„์˜ ์ง„์ž… ์ ์ž…๋‹ˆ๋‹ค. ์–ด๋–ค ์‚ฌ๋žŒ๋“ค์—๊ฒŒ๋Š” ์›น ๊ฐœ๋ฐœ์˜ ์‹œ์ž‘์ ์ž…๋‹ˆ๋‹ค.

๊ทธ๋“ค์€ fsevents ์ด ๋ฌด์—‡์ธ์ง€ ๋ชจ๋ฆ…๋‹ˆ๋‹ค. ๋ฉ”์‹œ์ง€๋Š” Create React App์ด Windows์™€ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์ฝ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๊ทธ๋“ค์˜ ํ…Œ์ดํฌ ์•„์›ƒ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฒƒ์ด ๋‚˜์ค‘์— ์ž‘๋™ํ•˜๋ฉด ์ข‹์ง€๋งŒ ๋ฌด์–ธ๊ฐ€๊ฐ€ ๊ณ ์žฅ ๋‚˜๋ฉด ์ด๋Ÿฌํ•œ ๊ฒฝ๊ณ  ๋•๋ถ„์— ์ž‘๋™ํ•˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค๋Š” ์ƒ๊ฐ์„ ๊ฐ–๊ฒŒ๋˜๋ฏ€๋กœ ํ•ญ์ƒ ๋ฌธ์ œ๋ฅผ๋ณด๊ณ ํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š”์ด ์ œ์•ˆ์œผ๋กœ์ด ์ธ์ƒ์— ๋งž์„œ๋ ค๊ณ  ๋…ธ๋ ฅํ•˜๊ณ ์žˆ๋‹ค.

์™œ ์šฐ๋ฆฌ๋Š” ๋ฌด์„œ์šด ์ด์•ผ๊ธฐ๋ฅผํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ์ด๊ฒƒ์€ ์œ ์น˜์›์ด ์•„๋‹ˆ๋ผ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์ž…๋‹ˆ๋‹ค.

์‚ฌ๋žŒ๋“ค์ด ์œ ์น˜์›์—์„œ๋งŒ ๊ฒ์„ ๋จน๋Š”๋‹ค๋Š” ๊ฐ€์ •์ด ์ €์—๊ฒŒ ๋‹นํ˜น ์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค. ์‚ฌ๋žŒ๋“ค์ด ํ‰์ƒ ๋™์•ˆ ๋‘๋ ค์›Œํ•˜๋Š” ๊ฒƒ๋“ค์ด ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋ถˆ์•ˆ๊ณผ ๊ฐ™์€ ์ •์‹ ์  ์ƒํƒœ์™€ ๊ธฐํƒ€ ๋‘๋ ค์›€ (์˜ˆ : ์ง์žฅ์—์„œ ์ถฉ๋ถ„ํžˆ ์ž˜ํ•˜์ง€ ๋ชปํ•˜๋Š” ๋‘๋ ค์›€)์ด ๋ชจ๋‘ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

JavaScript ๋„๊ตฌ์™€ ๊ด€๋ จ์ด์—†๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋‘ ๊ฐ€์ง€ ๋ณ„๋„์˜ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ๋ถˆ๋ช…ํ™• ํ•œ ์กฐ์น˜ ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒฝ๊ณ ๋Š” ์‚ฌ๋žŒ๋“ค์„ ๋ถˆ์•ˆํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ์ž์‹ ์˜ ๋„๊ตฌ๋ฅผ ๋œ ์‹ ๋ขฐํ•˜๊ฒŒ ๋งŒ๋“ค๊ณ , ๊ทธ๋ ‡์ง€ ์•Š๋”๋ผ๋„ ๋ญ”๊ฐ€ ์ž˜๋ชปํ–ˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ํ˜ผ๋ž€์Šค๋Ÿฝ๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ Kathy Sierra์— ์˜ํ•ด ์ž˜ ์„ค๋ช… ๋œ์ธ์ง€ ์œ ์ถœ์— ๊ธฐ์—ฌํ•ฉ๋‹ˆ๋‹ค.

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

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

์ด๊ฒƒ์ด @gaearon์„ ๋Œ์–ด ๋‚ด๊ณ ์žํ–ˆ๋˜ ์ •๋ณด์˜ ๊นŠ์ด์ž…๋‹ˆ๋‹ค. ์‹œ๊ฐ„์„๋‚ด์–ด ํ•™์Šต์ž์— ๋Œ€ํ•œ ๊ณต๊ฐ์ด ๋น›๋‚˜๊ณ  ์นญ์ฐฌ ํ•  ๋งŒํ•˜๋‹ค๊ณ  ์„ค๋ช… ํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

ํ•™์Šต์ž๋“ค์—๊ฒŒ ์Šค์Šค๋กœ ๋‚š์‹œ๋ฅผ ๊ฐ€๋ฅด์น˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋•Œ๋•Œ๋กœ ๊ทธ๊ฒƒ์€ ๋‘๋ ค์›€์œผ๋กœ๋ถ€ํ„ฐ ๊ทธ๋“ค์„ ๋ณดํ˜ธํ•˜์ง€ ์•Š๊ณ  ๋Œ€์‹  ๋‘๋ ค์›€์— ์ •๋ฉด์œผ๋กœ ๋งž์„œ๋„๋ก ๊ฒฉ๋ คํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

fsevents ๊ฒฝ๊ณ ์˜ ๊ฒฝ์šฐ ์„ ํƒ์  ์ข…์†์„ฑ์ด๋”๋ผ๋„ ํ•™์Šต์ž๋Š” ๊ฒฝ๊ณ ๋ฅผ ๊ด€์ฐฐํ•˜๊ณ  ์ดํ•ดํ•˜๋„๋กํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์„ฑ์žฅํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด Stack Overflow๋ฅผ ๋น ๋ฅด๊ฒŒ ๊ฒ€์ƒ‰ํ•˜๋ฉด ์„ค๋ช… ๋œ ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€ ์ฒ˜๋ฆฌ์— ๋Œ€ํ•œ ๋‹ค์Œ ์†”๋ฃจ์…˜์ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. https://stackoverflow.com/a/42938398/712334.

์ธ์ง€ ์  ์˜ค๋ฒ„ ํ—ค๋“œ๊ฐ€ ๋ฌธ์ œ๊ฐ€๋˜๋Š” ๊ฒฝ์šฐ ๊ฐœ์ธ์ด ๋‹จ์ผ ํŽ˜์ด์ง€ ์•ฑ์„ ๋งŒ๋“ค๊ธฐ์œ„ํ•œ ๋‹ค๋ฅธ ๋„๊ตฌ ๋ฅผ ์ฐพ๊ฑฐ๋‚˜ ์›น์˜ ๊ธฐ์ดˆ๋ฅผ ์–ป๋Š” ๋ฐ ๋” ์ ํ•ฉํ•œ ๊ณณ์—์„œ ์ง€์‹ ์—ฌํ–‰์„ ์‹œ์ž‘ํ•˜๋„๋ก ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

@ glen-84 ์˜๊ฒฌ์„ ๊ณต์œ  ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ, ์•„๋‹ˆ๋ฉด ๊ทธ๋ƒฅ ์—„์ง€ ์†๊ฐ€๋ฝ์„ ๋˜์ง€์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

ํ™•์‹คํ•œ.

  • ์กฐ์น˜ ํ•  ์ˆ˜์—†๊ณ  ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ค์ง€ ์•Š๋Š” ๊ฒƒ์— ๋Œ€ํ•œ ๊ฒฝ๊ณ ๋ฅผ ํ‘œ์‹œํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฐ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

    • ๊ฐœ๋ฐœ์ž๊ฐ€ ๋จผ์ € ์™œ ์ด๋Ÿฐ ์ผ์ด ๋ฐœ์ƒํ•˜๋Š”์ง€ ์•Œ์•„ ๋‚ด๊ณ  ๋งค๋ฒˆ ๋ฌด์‹œํ•ด์•ผํ•˜๋Š” ์‹œ๊ฐ„ ๋‚ญ๋น„ (๊ทธ๋ฆฌ๊ณ  ๊ฒฝ๊ณ ๋ฅผ ๋ฌด์‹œํ•˜๋Š” ๊ฒƒ์€ ๋‚˜์œ ์ผ์ž…๋‹ˆ๋‹ค)

    • Yarn / npm ๊ฐœ๋ฐœ์ž๊ฐ€ ์‹œ๊ฐ„ ๋‚ญ๋น„, ์™œ ๋ฐœ์ƒํ•˜๋Š”์ง€ ์„ค๋ช…ํ•ด์•ผ ํ•จ

    • ๋‹ค์šด ์ŠคํŠธ๋ฆผ ํˆด๋ง ์˜ค๋ฅ˜

    • ๊ธฐํƒ€

  • npm ๋ฌธ์ œ์˜ ํˆฌํ‘œ๋ฅผ ํ•ฉ์น˜๋ฉด ๊ฑฐ์˜ 150 ๋ช…์˜ ์‚ฌ์šฉ์ž๊ฐ€ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค.
  • npm ๊ฐœ๋ฐœ์ž๋Š” ์ด๋ก ์ƒ ์ด๋ฏธ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„

IMO๋Š”์ด ํ† ๋ก ์— ๊ฐ€์น˜๋ฅผ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๊ท€ํ•˜์˜ ์˜๊ฒฌ ์ค‘ ๋‘ ๊ฐœ์— ๋Œ€ํ•ด ๋ฐ˜๋Œ€ํ‘œ๋ฅผ ๋˜์กŒ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์กฐ์น˜ ํ•  ์ˆ˜์—†๋Š” ๊ฒฝ๊ณ ๋Š” ์œ ์šฉํ•˜์ง€ ์•Š์œผ๋ฉฐ ๋ถˆํ•„์š”ํ•˜๊ฒŒ ๋ฌด์„ญ๊ฑฐ๋‚˜ ์‹œ๋„ ๋Ÿฝ๊ฑฐ๋‚˜ /. @bestander์ด ์ œ์•ˆ์˜์ด ์ œ์•ˆ์˜ @dmbdesignpdx์œผ๋กœ ๊ฐ€์ž?

PR ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ์ž๊ฐ€ ๋จผ์ € ์™œ ์ด๋Ÿฐ ์ผ์ด ๋ฐœ์ƒํ•˜๋Š”์ง€ ์•Œ์•„ ๋‚ด๊ณ  ๋งค๋ฒˆ ๋ฌด์‹œํ•ด์•ผํ•˜๋Š” ์‹œ๊ฐ„ ๋‚ญ๋น„ (๊ทธ๋ฆฌ๊ณ  ๊ฒฝ๊ณ ๋ฅผ ๋ฌด์‹œํ•˜๋Š” ๊ฒƒ์€ ๋‚˜์œ ์ผ์ž…๋‹ˆ๋‹ค)

๋‹น์‹ ์€ ๊ทธ๊ฒƒ์„ ๋ฌด์‹œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์™œ ๋ฐœ์ƒํ•˜๋Š”์ง€ ๋ฐฐ์šฐ๊ณ  ์กฐ์น˜๋ฅผ ์ทจํ•ฉ๋‹ˆ๋‹ค. ๋•Œ๋กœ๋Š” ๊ด€๋ จ NPM ๋ฌธ์ œ์—์„œ @Vanuan ์ด ์ œ์•ˆํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ๊ทผ๋ณธ ์›์ธ์„ ํ•ด๊ฒฐํ•˜๋Š” ์ €์žฅ์†Œ์˜ ๋ฌธ์ œ ๋˜๋Š” ๋‹ค๋ฅธ ๋„๊ตฌ ์„ธํŠธ๋กœ ์ด์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Yarn / npm ๊ฐœ๋ฐœ์ž๊ฐ€ ์‹œ๊ฐ„ ๋‚ญ๋น„, ์™œ ๋ฐœ์ƒํ•˜๋Š”์ง€ ์„ค๋ช…ํ•ด์•ผ ํ•จ

๊ฐœ๋ณ„ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋˜๋Š” ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์€ Yarn์˜ ์ฑ…์ž„์ด ์•„๋‹™๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  NPM์€ ์œ ์ผํ•œ ํฌ์žฅ์—…์ž๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ๊ฐœ์ธ์ ์œผ๋กœ ์ €๋Š” Yarn์ด Composer๋ฅผ ๋Œ€์ฒดํ•˜๊ณ  ๊ณตํ—ˆํ•จ์„ ์ฑ„์šฐ๊ธฐ ์œ„ํ•ด ์„ฑ์žฅํ•˜๋Š” ๊ฒƒ์„๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. Bower๋Š” ๋ถ‰์€ ์ฒญ์–ด์— ์‚ฐ๋งŒ ํ•ด์ง€๊ธฐ๋ณด๋‹ค๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ๋– ๋‚ฌ์Šต๋‹ˆ๋‹ค.

npm ๋ฌธ์ œ์˜ ํˆฌํ‘œ๋ฅผ ํ•ฉ์น˜๋ฉด ๊ฑฐ์˜ 150 ๋ช…์˜ ์‚ฌ์šฉ์ž๊ฐ€ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์ด ๋ฐ”๋กœ ์ธ์ˆ˜ ๊ด‘๊ณ ์ž…๋‹ˆ๋‹ค. ์œ„์›ํšŒ์— ์˜ํ•œ ๋””์ž์ธ์€ ๋ˆ„๊ตฌ์—๊ฒŒ๋„ ์ž˜ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํ† ๋ก ์„ ๋งˆ์นœ ํ›„ cat-discusson ๋ ˆ์ด๋ธ”์„ ์ œ๊ฑฐํ–ˆ์œผ๋ฉฐ ์ด์ œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์ž‘์—…์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๋‹ค๋ฅธ ํŒจํ‚ค์ง€์— ์˜์กดํ•˜๋Š” ํŒจํ‚ค์ง€๋ฅผ ์ง€์ •ํ•˜์—ฌ ๊ฒฝ๊ณ ๋ฅผ ๋” ์œ ์šฉํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

@jhabdas ์ €๋Š” ์šฐ๋ฆฌ๊ฐ€ "ํ•™์Šต"๊ณผ "ํ–‰๋™ํ•˜๊ธฐ"๋ถ€๋ถ„์— ๋™์˜ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์ด ๋™์˜ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ๋ถ€๋ถ„์€ ์šฐ๋ฆฌ๊ฐ€ ๊ทธ๊ฒƒ์„ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ๊ทธ๊ฒƒ์ด yarn ์˜ ์˜๋ฌด์ธ์ง€ ์•„๋‹Œ์ง€์ž…๋‹ˆ๋‹ค. ์ง€๊ธˆ์€ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋„์›€์ด๋˜๋Š” ์›์‚ฌ๊ฐ€ ๋งŽ์„์ˆ˜๋ก ์ข‹๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋” ์ค‘์š”ํ•œ ์ˆ˜์ • ๋ฐ ์—…๋ฐ์ดํŠธ์—์„œ ๋ฆฌ์†Œ์Šค๋ฅผ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด ์šฐ์„  ์ˆœ์œ„๋ฅผ ๋†’๊ฒŒ ์ง€์ •ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ฏ€๋กœ PR์„ ์œ„ํ•ด ์ปค๋ฎค๋‹ˆํ‹ฐ์— ์—ฐ๊ธฐํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ๋” ๋…ผ์˜ํ•˜๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ์ด ์žˆ๋‹ค๋ฉด Discord๋กœ ์ด๋™ํ•ฉ์‹œ๋‹ค. ๋‚ด ๊ด€์‹ฌ์„ ๋Œ๊ธฐ ์œ„ํ•ด ์ €๋ฅผ ์ง์ ‘ ํ•‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ’“

์™œ ๋ฐœ์ƒํ•˜๋Š”์ง€ ๋ฐฐ์šฐ๊ณ  ์กฐ์น˜๋ฅผ ์ทจํ•ฉ๋‹ˆ๋‹ค.

์–ด๋–ค ์กฐ์น˜๋ฅผ ์ทจํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ?

๊ฐœ๋ณ„ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋˜๋Š” ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์€ Yarn์˜ ์ฑ…์ž„์ด ์•„๋‹™๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ๋ฐ˜๋ณต์ ์œผ๋กœ๋ณด๊ณ  ๋œ ๋ฌธ์ œ๋ฅผ๋ณด๊ณ  ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ๋ฐ ๋ฒ„๊ทธ ์ˆ˜์ • ์ž‘์—… ๋Œ€์‹  ๋ถˆํ•„์š”ํ•œ ๋ฌธ์ œ ๋ถ„๋ฅ˜์— ์‹œ๊ฐ„์„ ์†Œ๋น„ํ•ด์•ผํ•˜๋Š” ๊ฒƒ์€ Yarn ๋ฐ npm ๊ฐœ๋ฐœ์ž์ž…๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์ด ๋ฐ”๋กœ ์ธ์ˆ˜ ๊ด‘๊ณ ์ž…๋‹ˆ๋‹ค. ์œ„์›ํšŒ์— ์˜ํ•œ ๋””์ž์ธ์€ ๋ˆ„๊ตฌ์—๊ฒŒ๋„ ์ž˜ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ ์šฐ๋ฆฌ๊ฐ€ ๊ฐ€์ง„ ์ „๋ถ€์ด๋ฉฐ, ์ด๋Ÿฌํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋™์˜ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ๋ฌธ์ œ์— ๋Œ€ํ•œ ๊ท€ํ•˜์˜ ํ•˜ํ–ฅ ํˆฌํ‘œ๋Š” ๊ด€๋ฆฌ์ž์˜ ์˜์‚ฌ ๊ฒฐ์ •์— ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ข‹์•„์š” @ glen-84๋Š” ์›๋ž˜ ๋ฌธ์ œ๊ฐ€ ํ•˜์œ„ ์ข…์†์„ฑ ๋ฐ ์ •๋ณด ๋ฉ”์‹œ์ง€์— ๊ด€ํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํŠน์ • ํ”Œ๋žซํผ์— ์„ค์น˜ํ•  ์ˆ˜์—†๋Š” ํŒจํ‚ค์ง€์— ๋Œ€ํ•œ ๊ฒฝ๊ณ ๊ฐ€ ์•„๋‹ˆ๋ผ๋Š” ๊ฒƒ์„ ์นœ์ ˆํ•˜๊ฒŒ ์ƒ๊ธฐ์‹œ์ผœ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.

์ด์ œ์ด ํŠน์ • ํ‹ฐ์ผ“์— ๋Œ€ํ•œ ์ž‘์—…์€ ๊ฐ€์น˜๋ฅผ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๊ฒฝ๊ณ ์—์„œ ์ •๋ณด ๋˜๋Š” ๋””๋ฒ„๊ทธ๋กœ ๊ฐ„๋‹จํžˆ ๋‚ฎ์ถ”๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฐ˜๋Œ€? ๋‹ค๋ฅธ ๋ถ€๋ถ„์„ # 3869๋กœ ์˜ฎ๊ฒผ์Šต๋‹ˆ๋‹ค.

@gaearon ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋‹จ์œ„ ํ…Œ์ŠคํŠธ์—†์ด ํ•œ ์ค„ ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์„ ๊ธฐ์–ตํ•˜์‹ญ์‹œ์˜ค.

@jhabdas ์ด๋ฏธ PR์—์„œ ๋Œ€๋‹ตํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‚ด ์ฒ ํ•™์ž…๋‹ˆ๋‹ค https://stackoverflow.com/questions/153234/how-deep-are-your-unit-tests/153565#153565 ๊ทธ๋Ÿฌ๋‚˜ ํŒจํ‚ค์ง€ ํ˜ธํ™˜์„ฑ์ด๋‚˜ ํŠนํžˆ ๊ทธ ๋ถ€๋ถ„์— ๋ช‡ ๊ฐ€์ง€ ํ…Œ์ŠคํŠธ๊ฐ€ ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค๋ฉด ์ œ๋ฐœ ํ’€ ์š”์ฒญ์„ ์—ด๊ณ  ๋ฏธ๋ฆฌ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค :)

๋‚˜๋Š” ๋‹น์‹ ์˜ ์ข‹์€ ํŒ๋‹จ์„ ๋ฏฟ์ง€๋งŒ ๋‚˜๋ญ‡ ๊ฐ€์ง€๋ฅผ ๋˜์งˆ ์ˆ˜์žˆ๋Š” ํ•œ ๊ทธ๋ ‡๊ฒŒ ๋ฏฟ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. ํ•œ ์ค„์˜ ์ฝ”๋“œ ๋ณ€๊ฒฝ์œผ๋กœ์ด ์ „์ฒด ์Šค๋ ˆ๋“œ๋ฅผ ํ”ผํ•  ์ˆ˜ ์žˆ์—ˆ๋˜ ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๊ธฐ ์œ„ํ•ด ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์˜ ์ด์ต์„ ์œ„ํ•ด ๋‚ด ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค. ๋•Œ๋กœ๋Š” ํ–‰๋™์ด ๋ง๋ณด๋‹ค ๋” ํฌ๊ฒŒ ๋งํ•ฉ๋‹ˆ๋‹ค. ๊ฑด๋ฐฐ.

@jhabdas ์—ฌ๋Ÿฌ๋ถ„์˜ ๊ธฐ์—ฌ์— ๊ฐ์‚ฌ ๋“œ๋ฆฌ๋ฉฐ, ์šฐ๋ฆฌ์˜ ํ–‰๋™ ๊ฐ•๋ น , ํŠนํžˆ ๋‹ค์Œ ํ•ญ๋ชฉ์„ ์ƒ๊ธฐ์‹œ์ผœ ๋“œ๋ฆฌ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

  • ํ™˜์˜ํ•˜๊ณ  ํฌ์šฉ์ ์ธ ์–ธ์–ด ์‚ฌ์šฉ
  • ์„œ๋กœ ๋‹ค๋ฅธ ๊ด€์ ๊ณผ ๊ฒฝํ—˜์„ ์กด์ค‘ ํ•จ
  • ๋‹ค๋ฅธ ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ตฌ์„ฑ์›์— ๋Œ€ํ•œ ๊ณต๊ฐ์„ ํ‘œ์‹œ

์ง„์‹ฌ์œผ๋กœ ์‚ฌ๊ณผ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๋‚˜๋Š” ํ–‰๋™ ๊ฐ•๋ น์„ ๊ฒ€ํ† ํ•˜๊ณ  ์ข‹์€ ์ง€์—ญ ์‚ฌํšŒ ์‹œ๋ฏผ์ด๋˜๊ธฐ ์œ„ํ•ด ๋” ์ž˜ ๋…ธ๋ ฅํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. @BYK์—๊ฒŒ ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉํ–ฅ์„ ์•Œ๋ ค ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ˜ ๐Ÿ™‡

NPM์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ๋“ํ‘œ ํ•œ ๋ฌธ์ œ ์˜€๊ณ  ์‹ค์ œ ๋ฌธ์ œ๋ฅผ ์ผ์œผ์ผฐ์ง€ ๋งŒ 1.5 ๋…„ ๋™์•ˆ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์ง€ ์•Š์€ ํ›„ ๋ด‡์€ ๋„ˆ๋ฌด ๋Š™์–ด์„œ ์ž๋™์œผ๋กœ ๋‹ซ์•˜์Šต๋‹ˆ๋‹ค!

๊ทธ๋Ÿฐ ์ข…๋ฅ˜์˜ ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ๊ฐ€ ์ œ๊ฐ€ Yarn์œผ๋กœ ์ „ํ™˜ ํ•œ ์ด์œ  ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

์ˆ˜์ •์ด ์–ผ๋งˆ๋‚˜ ์‰ฌ์šด ์ง€ ์•Œ๊ธฐ ๋•Œ๋ฌธ์— ์‹œ๊ฐ„๊ณผ ๋…ธ๋ ฅ์ด ์–ผ๋งˆ๋‚˜ ๋‚ญ๋น„๋˜์—ˆ๋Š”์ง€ ๊ณ ๋ฏผํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ˜ข

๊ฐ์‚ฌ!

์•ˆ๋…•ํ•˜์„ธ์š”, ๋ชจ๋“  ๋…ธ๋ ฅ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. stderror ๋Œ€์‹  stdout์—์žˆ๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ๋” ์ข‹์Šต๋‹ˆ๋‹ค.). ๊ทธ๋Ÿฌ๋‚˜ ์—ฌ์ „ํžˆ ์ •๋ณด ์ˆ˜์ค€์กฐ์ฐจ๋„ ์ˆ˜๋งŽ์€ ์‚ฌ๋žŒ๋“ค์„ ๋ฐ๋ ค ์˜ฌ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ•œ ์‹œ๊ฐ„ ๋™์•ˆ ๊ด€๋ จ ๋ฌธ์ œ๋ฅผ ์ฝ์€ ํ›„ ์–ป์„ ์ˆ˜์žˆ๋Š” ์œ ์ผํ•œ ๊ฒฐ๊ณผ๋Š” (๋ฐ”๋ฒจ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”) ๋‹น๋ถ„๊ฐ„ ํ•จ๊ป˜ ์‚ด์•„์•ผํ•œ๋‹ค๋Š” ๊ฒƒ๊ณผ ์„ ํƒ์  ์ข…์†์„ฑ์„ ํ†ตํ•œ ํ”Œ๋žซํผ ๋ณ„ ์ตœ์ ํ™”๊ฐ€ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ๋น„์šฉ์ด ๋งŽ์ด ๋“ ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์„ ๋””๋ฒ„๊ทธ ์ˆ˜์ค€์—์„œ๋งŒ ์ถœ๋ ฅํ•˜๋Š” ํŽธ์— ์žˆ์Šต๋‹ˆ๋‹ค.

@kubino ์ข‹์€ ํ”ผ๋“œ๋ฐฑ์ž…๋‹ˆ๋‹ค, ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! info ์ด๋™ํ•ด๋„ ๋ฌธ์ œ๊ฐ€ ์™„์ „ํžˆ ํ•ด๊ฒฐ๋˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด @jhabdas๋Š” ์‹ค์ œ๋กœ ๋” ๋‚˜์€ ์ผ๋ฐ˜ํ™”๋ฅผ ์œ„ํ•ด ์‹œ๊ฐ„์„ ๋ณด๋ƒˆ๊ณ  RFC๋ฅผ ์ œ์ถœํ–ˆ์Šต๋‹ˆ๋‹ค . ๊ทธ๊ณณ์—์„œ ํ”ผ๋“œ๋ฐฑ์„ ์ œ๊ณตํ•˜๊ณ  RFC๊ฐ€ ์šฐ๋ ค ์‚ฌํ•ญ์„ ํ•ด๊ฒฐํ•˜๋Š”์ง€ ์•Œ๋ ค์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

@BYK ์—ฌ์ „ํžˆ ๊ด€์‹ฌ์„
๋‚ด ๊ด€์‹ฌ์‚ฌ๋Š” ์ผ๋ถ€ ๊ตฌ์ฒด์ ์ธ ํ”Œ๋žซํผ์— ๋Œ€ํ•œ ์ตœ์ ํ™” ์—ญํ• ์„ํ•˜๋Š” OPTIONAL ์ข…์†์„ฑ์— ๋Œ€ํ•œ ๊ฒƒ์ด ์—ˆ๋Š”๋ฐ, ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์˜ค์—ผ์˜ ๊ฐ€์น˜๊ฐ€ ๊ฑฐ์˜ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ œ๊ฐ€ ๋งํ–ˆ๋“ฏ์ด ์ €๋Š” ์ „๋ฌธ๊ฐ€๊ฐ€ ์•„๋‹ˆ๋ฉฐ ์ด๊ฒƒ์ด ํ•ญ์ƒ ๊ฒฐ์ •ํ•˜๊ธฐ๊ฐ€ ๊ทธ๋ ‡๊ฒŒ ๋ช…ํ™•ํ•œ ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@kubino ๋Š” ์ „๋ฌธ๊ฐ€๊ฐ€ ๋  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์„ธ์ƒ์€ ์ž์นญ ์ „๋ฌธ๊ฐ€๋กœ ๊ฐ€๋“ ์ฐจ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์œผ๋ฏ€๋กœ ์ „๋ฌธ๊ฐ€๊ฐ€ ์•„๋‹ˆ๋ผ๊ณ  ์ฃผ์žฅํ•˜๋Š” ๊ฒƒ์ด ๋” ์ข‹์œผ๋ฉฐ ๊ฒฐ๊ตญ ํ•˜๋‚˜๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ๐Ÿ˜€

์–ด์จŒ๋“  ์•„์ง RFC๋ฅผ ์™„์ „ํžˆ ์ฝ์„ ์‹œ๊ฐ„์ด ์—†์—ˆ์ง€๋งŒ label = "Interoperability" ์„น์…˜์— ํ•ด๋‹นํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ์—๋Š” optimization ์„น์…˜์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๊ทธ PR์— ๋Œ€ํ•œ ํ† ๋ก ์„ ๊ณ„์† ํ•˜์ž๊ณ  ๋‚˜๋Š” ๋‹น์‹ ์ด ๊ฑฐ๊ธฐ ์—์„œ์ด ์ œ์•ˆ์„ํ•˜๊ณ  @jhabdas ๊ฐ€ ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜๋Š”์ง€

@kubino ์ข€ ๋” ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก RFC ์„ค๋ช…์„

RFC๋Š” ์ฐฝ์˜์ ์œผ๋กœ ์‚ฌ์šฉํ•  ๋•Œ ์ œ๊ธฐ ํ•œ ๊ฒƒ๊ณผ ๊ฐ™์€ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๋Š” ๋ฐ ๋„์›€์ด๋˜๋Š” ์ž‘์€ (๊ด€๋ จ์ด์—†๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž„) ๊ธฐ๋Šฅ์„ ๋„์ž…ํ•˜์—ฌ ํŒ์—… ๋  ์ˆ˜์žˆ๋Š” ์—ฌ๋Ÿฌ ๊ด€๋ จ ์‚ฌ์šฉ ์‚ฌ๋ก€๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ์œ„ํ•œ ์ œ์•ˆ์ž…๋‹ˆ๋‹ค. Yarn์ด ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ์œ„ํ•ด ์ด๋ฏธ ์„ฑ์ทจ ํ•œ ์œ„๋Œ€ํ•œ ์ž‘์—…์— ์ถ”๊ฐ€์ ์ธ ํ˜œํƒ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

์ฝ”๋”ฉ๊ณผ ๊ด€๋ จํ•˜์—ฌ ๋” ๋งŽ์€ ๊ฒฝํ—˜์„ ์Œ“๋Š” ๊ฒƒ์€ ์ž์‚ฐ์ด ๋  ์ˆ˜์žˆ๋Š” ๊ฒƒ๋งŒํผ์ด๋‚˜ ๋” ๋งŽ์€ ์ฑ…์ž„์ด ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋ฐฐ์› ์œผ๋ฏ€๋กœ RFC๋ฅผ ๋”์šฑ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ๊ท€ํ•˜์˜ ํ†ต์ฐฐ๋ ฅ์„ ๋…ผ์˜ํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ธฐ์˜๊ฒŒ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

@BYK ๋‚œ ๋‹น์‹ ์ด ๊ฐ€๋ฆฌํ‚ค๋Š” ์œ„์น˜๋ฅผ ์•Œ) ๋‘˜ ๋‹ค์— ๋™์˜ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค I์˜ ํ•„์š”์„ฑ์„ @jhabdas, ์ผ๋ฐ˜์ ์ธ ์†”๋ฃจ์…˜์€์ด ํ† ๋ก  ์ค‘ ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๋ฉ”์‹œ์ง€ ๋ถ„๋ฅ˜๋Š” ๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒƒ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒํ•˜๋Š” ์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค. ๊ด€๋ จ RFC์—์„œ ๊ณ„์† ๋…ผ์˜ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌ!

์„ ํƒ ์‚ฌํ•ญ ์ธ "๋Œ€์ƒ OS ์ œ๊ณต"์ธ ๊ฒฝ์šฐ ๊ฒฝ๊ณ  ์ˆ˜์ค€์ด ์•„๋‹ˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์ €์ž๋Š” "MacOS๋ผ๋ฉด โ€‹โ€‹FSEvents๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค."๋ผ๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ Mac ์ด์™ธ์˜ OS์— ์„ค์น˜ํ•˜๋Š” ๊ฒฝ์šฐ ์™œ ๊ฒฝ๊ณ ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๊นŒ? ์ •๋ณด / ๋””๋ฒ„๊ทธ์™€ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค.

@robertjchristian ๋‚˜๋Š” ์ด๊ฒƒ์— ๋‘ ๊ฐ€์ง€ ์ธก๋ฉด์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

  1. fsevents ๊ฐ™์€ OS์— ์„ค์น˜ํ•˜๋ ค๋Š” ์‹œ๋„๊ฐ€ ๊ฒฝ๊ณ  ๋˜๋Š” ์˜ค๋ฅ˜๋ฅผ ์ธ์‡„ํ•ด์•ผํ•˜๋ฏ€๋กœ ๋งฅ OS์˜ ์ž์ฒด ์•Š์Šต๋‹ˆ๋‹คํ•˜์ง€ ์ž‘์—… ์™ธ๋ถ€. fsevents ์‚ฌ์šฉํ•˜๋Š” ์ผ๋ถ€ ํŒจํ‚ค์ง€๋Š” macOS ์ „์šฉ์ธ์ง€ ๋ชจ๋ฅด๊ณ  ํ”„๋กœ์„ธ์Šค์˜ ๋‹ค๋ฅธ OS์—์„œ ์ค‘๋‹จ๋˜์ง€ ์•Š๊ณ  ๋ณดํŽธ์ ์œผ๋กœ (์ž˜๋ชป๋œ) API์— ์˜์กด ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. fsevents ๊ฐ€ macOS์—์„œ๋งŒ ํ•„์š”ํ•œ ์ผ๋ถ€ ํŒจํ‚ค์ง€ ์šฉ์ธ ๊ฒฝ์šฐ ํ•ด๋‹น ํŒจํ‚ค์ง€๋Š” fsevents ๋ฅผ macOS ์™ธ๋ถ€์— ์„ค์น˜๋˜์ง€ ์•Š์Œ์œผ๋กœ ํ‘œ์‹œ ํ•  ์ˆ˜ ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. macOS์— fsevents ์„ (๋ฅผ) ์„ค์น˜ํ•˜์ง€ ๋ชปํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€๋งŒ ๋‹ค๋ฅธ OS์—์„œ๋Š” ์„ค์น˜๋ฅผ ์‹œ๋„์กฐ์ฐจํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํ•ต์‹ฌ ๋ฌธ์ œ๋Š” fsevents ๋ฅผ ์„ ํƒ์  ์ข…์†์„ฑ์œผ๋กœ ์ทจ๊ธ‰ํ•˜๋Š” ๊ฒƒ์ด ์ž˜๋ชป๋œ ์ ‘๊ทผ ๋ฐฉ์‹์ด๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋น ์ง„ ๊ฒƒ์€ macOS์—์„œ๋Š” ํ•„์ˆ˜๋กœ fsevents ๋ฅผ ํ‘œ์‹œํ•˜๊ณ  ๋‹ค๋ฅธ OS์—์„œ๋Š” ์„ ํƒ ์‚ฌํ•ญ์ด ์•„๋‹Œ ์™„์ „ํžˆ ์ œ์™ธ ๋œ ๊ฒƒ์œผ๋กœ ํ‘œ์‹œ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์˜ˆ, ์›๋ž˜ ์Šค๋ ˆ๋“œ์—์„œ ์—ฌ๋Ÿฌ ๋ฒˆ ์„ค๋ช…๋˜์—ˆ์ง€๋งŒ ์•„๋ฌด๋„ ๋“ฃ์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

https://github.com/npm/npm/issues/11632#issuecomment -238217690

ํ•ด๊ฒฐ์ฑ…์€ ํ”Œ๋žซํผ ๋ณ„ ์ข…์†์„ฑ ์ง€์›์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

https://github.com/npm/npm/issues/11632#issuecomment -257214969

'์˜ฌ๋ฐ”๋ฅธ'ํ•ด๊ฒฐ์ฑ…์€ ์กฐ๊ฑด๋ถ€ ์ข…์†์„ฑ ๋ฐฉ๋ฒ•์„ ๊ฐ–๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํŒจํ‚ค์ง€๊ฐ€ ํ•˜๋‚˜ ์ด์ƒ์˜ ์ข…์†์„ฑ์„ ์ผ๋ถ€ ํ”Œ๋žซํผ์— ์„ค์น˜ํ•ด์„œ๋Š” ์•ˆ๋œ๋‹ค๋Š” ๊ฒƒ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ž์‹ ์„ ํŠน์ • ํ”Œ๋žซํผ์œผ๋กœ ์„ค๋ช…ํ•˜๋Š” ํŒจํ‚ค์ง€์™€ ๋™์ผํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํŒจํ‚ค์ง€๋Š” ์„ ํƒ ์‚ฌํ•ญ์ธ์ง€ ์•„๋‹Œ์ง€ ์•Œ ์ˆ˜ ์—†์œผ๋ฏ€๋กœ '์ž˜๋ชป๋œ ํ”Œ๋žซํผ์— ์„ค์น˜ํ•˜๋ฉด ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค'๋ผ๊ณ  ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

https://github.com/npm/npm/issues/11632#issuecomment -300804918

npm์ด ํ•  ์ˆ˜์žˆ๋Š” ์ž‘์—…์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. ์„ ํƒ์  ์ข…์†์„ฑ ๋ฐ ์ง€์›๋˜์ง€ ์•Š๋Š” ๋ฉ”์‹œ์ง€๋ฅผ WARN์—์„œ INFO (๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋žŒ๋“ค์ด ์›ํ•˜๋Š” ๊ฒƒ)๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.
  2. ํ”Œ๋žซํผ ๋ณ„ ์ข…์†์„ฑ ๊ตฌํ˜„ (์ ์ ˆํ•œ ์†”๋ฃจ์…˜)

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

  "conditionalDependencies": {
    {
      "condition": { "platform": "darwin" }, // 'darwin', 'freebsd', 'linux', 'sunos' or 'win32'
      "packages": { "fsevents": "^1.0.0" }
    }
  },

๋˜ ๋‹ค๋ฅธ ๋Œ€์•ˆ์€ fsevents ์ž‘์„ฑ์ž๋ฅผ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ฒฝ๊ณ ์—†์ด ๋น„ OSX ํ”Œ๋žซํผ์—์„œ ์‹คํŒจํ•˜์ง€ ์•Š๋„๋กํ•˜๊ณ  ์ง€์›๋˜์ง€ ์•Š๋Š” ํ”Œ๋žซํผ์— ๋Œ€ํ•œ ์ •๋ณด ๋ฉ”์‹œ์ง€ ๋งŒ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

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

์•„์ง๋„ ๋Œ€๋‹ต์ด ์—†์Šต๋‹ˆ๊นŒ? ๊ทธ ๊ฒฝ๊ณ ๋Š” ๋„ˆ๋ฌด ๊ท€์ฐฎ์Šต๋‹ˆ๋‹ค.

์ด ์‹œ์ ์—์„œ ๋‚˜๋Š” ์šด์˜ ์ฒด์ œ๊ฐ€ ์‹ซ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์•ž์œผ๋กœ 4 ๋…„ ๋™์•ˆ ์ด๊ฒƒ์„ ๋ณด์ง€ ์•Š๊ธฐ ์œ„ํ•ด Mac์„ ๊ตฌ์ž…ํ•˜๊ณ  ์‹ถ์€ ์œ ํ˜น์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค ๐Ÿ‘Ž

์ด ์‹œ์ ์—์„œ ๋‚˜๋Š” ์šด์˜ ์ฒด์ œ๊ฐ€ ์‹ซ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์•ž์œผ๋กœ 4 ๋…„ ๋™์•ˆ ์ด๊ฒƒ์„ ๋ณด์ง€ ์•Š๊ธฐ ์œ„ํ•ด Mac์„ ๊ตฌ์ž…ํ•˜๊ณ  ์‹ถ์€ ์œ ํ˜น์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค ๐Ÿ‘Ž

์ „๋ฌธ์ ์œผ๋กœ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ๋” ๋‚˜์€ ํˆฌ์ž๋ฅผ ๊ถŒํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž๊ฐ€์ด๋ฅผ ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•ด ์กฐ์น˜๋ฅผ ์ทจํ•  ํ•„์š”๊ฐ€ ์—†๋Š”๋ฐ ์™œ ๊ฒฝ๊ณ ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๊นŒ?

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

ํŒŒํŠธ๋„ˆ๊ฐ€ ๋ฐฐ๊ฐ€ ๊ณ ํ”„๋‹ค ๊ณ  ๋งํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์€ ์Šค์Šค๋กœ ์š”๋ฆฌํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ๊ทธ๋ ‡๊ฒŒํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹น์‹ ์€ ์š”๋ฆฌํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹น์‹ ์ด ์ธ์‚ฌ๋ฅผ ํ•  ๋•Œ๋งˆ๋‹ค (npm install / yarn), ๊ทธ๋“ค์€ ๋‚ด๊ฐ€ ๋ฐฐ๊ณ ํ”„๋‹ค ๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค. (WARN WARN WARN) .. ๋‚˜์—๊ฒŒ๋Š” ๋ฌด์˜๋ฏธ ํ•ด ๋ณด์ž…๋‹ˆ๋‹ค.

์ด ์‹œ์ ์—์„œ ๋‚˜๋Š” ์ด๊ฒƒ์„ ๋ณด์ง€ ์•Š๋Š” ์œ ์ผํ•œ ๋ชฉ์ ์œผ๋กœ Mac์„ ๊ตฌ์ž…ํ•˜๊ณ  ์‹ถ๋‹ค.

Mac์—์„œ ์ด๊ฒƒ์„ ๋ณผ ์ˆ˜ ์—†๋‹ค๋Š” ๋œป์ž…๋‹ˆ๊นŒ?
Docker๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํ•œ ๋‹ค์Œ๊ณผ ๊ฐ™์ดํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

MacbookPro $ docker run -ti --rm node yarn add [email protected]
yarn add v1.13.0
info No lockfile found.
[1/4] Resolving packages...
[2/4] Fetching packages...
info [email protected]: The platform "linux" is incompatible with this module.
info "[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.

๋‚˜๋Š” ๋‹น์‹ ์ด chokidar๋ฅผ ํฌํฌํ•˜๊ณ  ๊ฑฐ๊ธฐ์—์„œ fsevents ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ด ๋” ์ข‹์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
์ตœ๊ทผ ๋…ธ๋“œ์—๋Š” OS X์—์„œ ๊ธฐ๋ณธ fs.watch ์ง€์›์ด ํฌ๊ฒŒ ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋ฌผ๋ก  ์ดˆ ํ‚ค๋‹ค์— ๋”ฐ๋ผ ์ˆ˜์‹ญ ๊ฐœ์˜ ํŒจํ‚ค์ง€๋ฅผ ํฌํฌํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์—์„œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•ด ๋ถˆํ‰ ํ•ด๋ณด์‹ญ์‹œ์˜ค.
https://github.com/paulmillr/chokidar/issues

๋‚˜๋Š” ๋‹น์‹ ์ด chokidar๋ฅผ ํฌํฌํ•˜๊ณ  ๊ฑฐ๊ธฐ์—์„œ fsevents ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ด ๋” ์ข‹์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
์ตœ๊ทผ ๋…ธ๋“œ์—๋Š” OS X์—์„œ ๊ธฐ๋ณธ fs.watch ์ง€์›์ด ํฌ๊ฒŒ ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๊ตญ ์šฐ๋ฆฌ๊ฐ€ ๊ฐ™์€ ํŽ˜์ด์ง€ ์—์žˆ๋Š” ๊ฒƒ

์˜ˆ, chokidar๊ฐ€ ๋…ธ๋“œ 10์— ๋Œ€ํ•œ ์ง€์›์„ ์ค‘๋‹จํ•˜๊ณ  ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ์—์„œ์ด๋ฅผ ์ค‘๋‹จํ•˜๊ธฐ ์‹œ์ž‘ํ•  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์œ ์ผํ•œ ์„ ํƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

@Vanuan ์ตœ๊ทผ node.js

์„ค์น˜ ๊ฒฝ๊ณ ์— ๋Œ€ํ•ด ๋ถˆํ‰ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, ํŒจํ‚ค์ง€๋ฅผ "์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”"๊ด€๋ฆฌ์ž์—๊ฒŒ ๋ถˆํ‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ •๋ง ์งœ์ฆ๋‚˜ ๋„ค์š”. ์ด๊ฒƒ์€ ๊ณผ๊ฑฐ์— ์ผ์–ด๋‚˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. Fsevents๋Š” ์ด๊ฒƒ์— ๋น„ํ•ด ํ›จ์”ฌ ๋œ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

์ด๊ฑด ์ ˆ๋Œ€ ๊ณ ์ณ์ง€์ง€ ์•Š์„๊นŒ์š”?

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