<p>yarn์€ ์•„๋งˆ๋„ ํŒŒ์ผ ๊ฒฝ๋กœ๋กœ ํ™•์ธ ๋œ ํŒจํ‚ค์ง€๋ฅผ ์บ์‹œํ•ด์„œ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค.</p>

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

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

๋‚˜๋Š” _bug_๋ฅผ ์ถ”์ธกํ•œ๋‹ค.

ํ˜„์žฌ ํ–‰๋™์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?
ํ˜„์žฌ ๋™์ž‘์ด ๋ฒ„๊ทธ ์ธ ๊ฒฝ์šฐ ์žฌํ˜„ ๋‹จ๊ณ„๋ฅผ ์ œ๊ณตํ•˜์‹ญ์‹œ์˜ค.

๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

component-foo/
โ””โ”€โ”€ package.json
โ””โ”€โ”€ index.js

yarn-test/
โ””โ”€โ”€ package.json

๋‹ค์Œ ํŒŒ์ผ๋กœ :

component-foo/package.json :

{
  "name": "component-foo",
  "version": "1.0.0",
  "private": true,
  "main": "index.js"
}

component-foo/index.js :

console.log('foo');

yarn-test/package.json :

{
  "name": "yarn-test",
  "version": "1.0.0",
  "private": true,
  "dependencies": {
    "component-foo": "file:../component-foo"
  }
}

์ด์ œ $ yarn install ๋‚ด์—์„œ yarn-test/ ํ•˜๊ณ  yarn-test/node_modules/component-foo/index.js ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

console.log('foo');

์ด์ œ yarn-test/node_modules/ ๋ฐ yarn-test/yarn.lock ํ•˜๊ณ  component-foo/index.js ๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

console.log('bar');

์ด์ œ $ yarn install ๋‚ด๋ถ€์—์„œ yarn-test/ ๋‹ค์‹œ ์‹คํ–‰ํ•˜๋ฉด yarn-test/node_modules/component-foo/index.js ๊ฐ€๋ฉ๋‹ˆ๋‹ค.

console.log('foo');

component-foo ์˜ ์บ์‹œ ๋œ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜์ง€๋งŒ component-foo/index.js ๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

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

๋งˆ์ง€๋ง‰์— yarn-test/node_modules/component-foo/index.js ๋˜์–ด์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

console.log('bar');

file:../ ์™€ ๊ฐ™์€ ๋กœ์ปฌ ๊ฒฝ๋กœ๋กœ ์„ค์น˜๋œ ํŒจํ‚ค์ง€๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์—†๋‹ค๋ฉด ์ „ํ˜€ ์บ์‹œ๋˜์ง€ ์•Š์•„์•ผํ•ฉ๋‹ˆ๋‹ค.

(์ฐธ๊ณ  : npm์ด ์บ์‹œํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.)

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

$ node -v
v6.9.1

$ yarn -V
0.18.0

macOS 10.12.1

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

@hantuzun ์™œ ๋กœ์ปฌ ์ข…์†์„ฑ์„ ์บ์‹œํ•ฉ๋‹ˆ๊นŒ? ์–ด์จŒ๋“  ๋กœ์ปฌ์ด๋ฏ€๋กœ ์บ์‹œ ์—ฌ๋ถ€์— ๊ด€๊ณ„์—†์ด ๋น ๋ฆ…๋‹ˆ๋‹ค.

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

์ด๊ฒƒ๋„ ์ €๋ฅผ ์†์˜€์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์บ์‹œ๋ฅผ ์ง€์šฐ์ง€ ์•Š๊ณ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์ด ๊ฒฝ์šฐ์— ์‹ค์„ ์‚ฌ์šฉํ•  ์ˆ˜์žˆ๊ฒŒ ๋งŒ๋“œ๋Š” ์„ธ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

  1. ๋ชจ๋“  ๋กœ์ปฌ ์ข…์†์„ฑ์„ ๋ฌด์‹œ ํ•˜๋ผ๋Š” @donaldpipowitch ์˜ ์ œ์•ˆ.
  2. ํŒŒ์ผ์ด ์บ์‹œ ๋  ๋•Œ๋ณด ๋‹ค ๋Šฆ๊ฒŒ ์ˆ˜์ •๋˜๋Š” ๊ฒฝ์šฐ ๋กœ์ปฌ ์ข…์†์„ฑ์„ ๋‹ค์‹œ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ๋ฅผ ์œ ์ง€ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๋กœ์ปฌ ์ข…์†์„ฑ์˜ ๊ฒฝ์šฐ "Resolved"์—ด์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ค„์„ ์‚ฝ์ž… ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. file://<path>@<cache_timestamp>
  3. yarn cache rm <package> ๋ฐ yarn cache add <package> ๊ฐ™์€ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ํŒจํ‚ค์ง€ ์ด๋ฆ„๋ณ„๋กœ ํŒจํ‚ค์ง€๋ฅผ ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์ข…์†์„ฑ.

๊ตฌํ˜„ํ•  ๋‘ ๋ฒˆ์งธ ์ œ์•ˆ์„๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์„ธ ๋ฒˆ์งธ ์˜ต์…˜์€ ๋‹ค๋ฅธ ๊ฒฝ์šฐ์—๋„ ์œ ์šฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด yarn cache add <package> ๋Š” ์ข…์†์„ฑ์„ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๋™์•ˆ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜์žˆ๋Š” ๊ฒฝ์šฐ ์ด๋ฏธ ์บ์‹œ ๋œ ์ข…์†์„ฑ์— ๋Œ€ํ•œ ์บ์‹œ๋ฅผ ์ƒˆ๋กœ ๊ณ ์น˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@hantuzun ์™œ ๋กœ์ปฌ ์ข…์†์„ฑ์„ ์บ์‹œํ•ฉ๋‹ˆ๊นŒ? ์–ด์จŒ๋“  ๋กœ์ปฌ์ด๋ฏ€๋กœ ์บ์‹œ ์—ฌ๋ถ€์— ๊ด€๊ณ„์—†์ด ๋น ๋ฆ…๋‹ˆ๋‹ค.

@ satya164 ๋‹น์‹ ์ด ๋งž์•„์š”. ๊ทธ๋Ÿฌ๋‚˜ ๋„คํŠธ์›Œํฌ์˜ ์ข…์†์„ฑ์ด ์˜๋„์ ์œผ๋กœ ์ˆ˜์ •๋˜๋ฉด ์„ธ ๋ฒˆ์งธ ์ ‘๊ทผ ๋ฐฉ์‹์ด ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

yarn cache ignore <package> ์™€ ๊ฐ™์€ ๊ฒƒ์ด ์œ ์šฉ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์„œ๋กœ ๋ฐฐํƒ€์  ์ผ ํ•„์š”๋Š” ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ํŒจํ‚ค์ง€๋ฅผ ๋ฌด์‹œํ•˜๋Š” ๊ฒƒ์€ ์œ ์šฉํ•˜์ง€๋งŒ ์ˆ˜๋™ ์ž‘์—…์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ ์ข…์†์„ฑ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฌด์‹œ๋˜๋Š” ๊ฒฝ์šฐ ์ถ”๊ฐ€ ๋…ธ๋ ฅ์—†์ด ์ž‘๋™ํ•˜๋„๋ก ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ˆ„๊ตฐ๊ฐ€ ๋‚˜์—๊ฒŒ ๋‚ด๋ถ€ ๋…ผ๋ฆฌ๋ฅผ ์„ค๋ช… ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋‚ด ์ดํ•ด :
file: ๊ฐ€์žˆ๋Š” ์ข…์†์„ฑ์ด ๋ฐœ์ƒํ•˜๋ฉด file-resolver.js ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ์ข…์†์„ฑ์ด ๋ณต์‚ฌ ๋˜์–ด์•ผํ•˜๋ฉฐ ํ•ด์‹œ ๋˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค. ํ•ด์‹œ๊ฐ€ ์—†๋‹ค๋Š” ๊ฒƒ์€ ์ด๋ฏธ ์บ์‹œ๋˜์ง€ ์•Š์•„์•ผ ํ•จ์„ ์˜๋ฏธํ•˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ? ๊ทธ๋Ÿฌ๋‚˜ copy-fetcher.js ๋Š” null ๋ฅผ ์œ ์ง€ํ•˜๋Š” ๋Œ€์‹  ํ•ด์‹œ๋ฅผ ๋นˆ ๋ฌธ์ž์—ด๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค ...์ด ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

@bestander ๋˜๋Š” @kittens ์•„๋งˆ๋„ ๋‹น์‹ ์€ ์ด๊ฒƒ์„ ์กฐ๊ธˆ ๋” ์„ค๋ช… ํ•  ์ˆ˜์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค ...? PR์„ ๋งŒ๋“œ๋Š” ๋ฐ ์•ฝ๊ฐ„์˜ ๋„์›€์„ ๋ฐ›๊ณ  ์‹ถ์–ด์š” โ™ฅ

Hash๋Š” ์˜ˆ๋ฅผ ๋“ค์–ด tarball-fetcher์— ์‚ฌ์šฉ๋˜๋Š” md5 ํ•ด์‹œ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
์ด ํ•ด์‹œ๋Š” ํ–ฅํ›„ ํ™•์ธ์„ ์œ„ํ•ด yarn.lock ํŒŒ์ผ์— ์ถ”๊ฐ€๋˜๋ฉฐ ์••์ถ•์ด ํ’€๋ฆฐ ํด๋”๋ฅผ ์บ์‹œ์— ์ €์žฅํ•  ๋•Œ ํด๋” ์ด๋ฆ„์—๋„ ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.
๋‹น์‹ ์€ ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉํ–ฅ์œผ๋กœ ํŒŒ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์„ ์กฐ์‚ฌํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. PR์€ ๋Œ€๋‹จํžˆ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค.
๊นจ์ง„ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” PR๋กœ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊นจ์ง„ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” PR๋กœ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•Œ๊ฒ ์Šต๋‹ˆ๋‹ค. ์‘๋‹ต ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. PR์˜ ๋ฆฌ๋ทฐ์–ด๋กœ์„œ ๋‹น์‹ ์„ ํ•‘ํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ, ์•„๋‹ˆ๋ฉด ๋‹ค๋ฅธ ์‚ฌ๋žŒ (๋˜๋Š” ์•„๋ฌด๋„) ํ•‘ํ•˜์ง€ ์•Š์•„์•ผํ•ฉ๋‹ˆ๊นŒ ...?

๊ทธ๋ž˜, ํ•‘

@bestander ์•„๋งˆ๋„์ด ๋ฌธ์ œ๋Š” ์•„์ง ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜

์˜ˆ, ๋‹ค์‹œ ์—ด์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๋‚ด PR ์ œ๋ชฉ์— "์ˆ˜์ • # 2165"๋ฅผ ์ผ๊ธฐ ๋•Œ๋ฌธ์— ์ข…๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ์ง„ํ–‰์ค‘์ธ PR์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์ง€๋งŒ์ด ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•˜๋ ค๋ฉด ๋‘ ๊ฐœ์˜ PR์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ PR์€ ๋‹จ์œ„ โ€‹โ€‹ํ…Œ์ŠคํŠธ๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค (์‹คํŒจ ํ•  ์ฃผ์žฅ์€ ์‹ค์ œ๋กœ ํ™œ์„ฑํ™”๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ CI๊ฐ€ ํญ๋ฐœํ•˜์ง€ ์•Š์Œ). ๋‘ ๋ฒˆ์งธ๋Š” ์‹ค์ œ๋กœ ๊ทธ๊ฒƒ์„ ๊ณ ์น  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. PR์ด ๋ณ‘ํ•ฉ๋˜๋ฉด github๊ฐ€ ๋ฌธ์ œ๋ฅผ ๋‹ซ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๋ถ„๋ช…ํžˆ ์ด๊ฒƒ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹๋ฌธ์ œ์ž…๋‹ˆ๊นŒ? ์†”์งํžˆ ๋งํ•ด์„œ ํ•จ๊ป˜ ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒƒ์€ ์ƒ๋‹นํžˆ ์„ฑ๊ฐ€์‹  ์ผ์ž…๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋ชจ๋“ˆ ์‹ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด file: ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ ์žˆ๋Š” ์ง์žฅ์—์„œ ๊ฐœ์ธ์ ์ธ ์ˆ˜์ค€์—์„œ ์ €์—๊ฒŒ ์•ฝ๊ฐ„์˜ ํ˜ผ๋ž€์„ ์•ผ๊ธฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์งœ์ฆ๋‚˜๋Š” ๋ถ€๋ถ„์€ ๋ชจ๋“  ๋กœ์ปฌ ํŒจํ‚ค์ง€ ๋‚ด๊ฐ€ ํŽธ์ง‘ํ•ฉ๋‹ˆ๋‹ค (์‚ฌ์šฉํ•œ๋‹ค๋Š” ์ ์ด๋‹ค file: ์—์„œ ๊ฒฝ๋กœ package.json ) ์ƒˆ๋กœ ๊ณ ์นœ ๋‚ด์šฉ์„ ํ’€๋‹ค์šดํ•˜๊ธฐ ์œ„ํ•ด,์ด ์ผ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค :

๋‚ด eslint-config-base-eslint ํŒจํ‚ค์ง€์˜ ๋‚ด์šฉ ํŽธ์ง‘

yarn cache clean && rm -rf node_modules/eslint-config-base-eslint && yarn install --force && yarn lint

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

์‹ค์ œ๋กœ ์ˆ˜์ •์€ 10-15 ์ค„์˜ ์ฝ”๋“œ ์—ฌ์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ์ˆ˜์ •ํ•˜๋Š” ๋ฐ ๋งŽ์€ ์‹œ๊ฐ„์„ ๋” ๋นจ๋ฆฌ ์ ˆ์•ฝ ํ•  ์ˆ˜์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ฐธ๊ณ  :์ด ๋ฌธ์ œ๋Š” ๋Š๋ฆฐ linking dependencies ๋‹จ๊ณ„์™€๋„ ๊ด€๋ จ์ด์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ ๋‚ด ์˜๊ฒฌ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค : https://github.com/yarnpkg/yarn/issues/1496#issuecomment -282688818.

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ๋˜ ๋‹ค๋ฅธ PR์„ ๋งŒ๋“ค ์‹œ๊ฐ„์„ ์ฐพ์„ ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. (์•„์ง๋„ ๋งค์šฐ ๋ฐ”๋นด์Šต๋‹ˆ๋‹ค.

@bestander ์ด๊ฒƒ์€ ๋‹ค์ค‘ ๋ชจ๋“ˆ ํ”„๋กœ์ ํŠธ์—์„œ ์ž‘์—…ํ•˜๋Š” ์ €์—๊ฒŒ ๊ฝค ํฐ ์ฐจ๋‹จ๊ธฐ์ž…๋‹ˆ๋‹ค. @donaldpipowitch ์˜ ์ฝ”๋“œ ๋งํฌ์™€ ์ฃผ์„์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ฝ๊ณ  ์žˆ๋‹ค๋ฉด ํŒŒ์ผ ํ•ด๊ฒฐ ํ”„๋กœ๊ทธ๋žจ์ด ํ•ด๊ฒฐํ•˜๋ ค๊ณ  ํ•  ๋•Œ๋งˆ๋‹ค ์ƒˆ hash (null ๋Œ€์‹ )๋ฅผ ๋งŒ๋“ค์–ด ๊ฐ•์ œ๋กœ ์žฌ์„ค์น˜ํ•˜๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? UUID ๋˜๋Š” ํ˜„์žฌ ํƒ€์ž„ ์Šคํƒฌํ”„๋ฅผ ๋ง ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ๋ญ”๊ฐ€ ๋น ์ง„ ๊ฒƒ์ด ์žˆ์œผ๋ฉด ์šฉ์„œํ•ด์ฃผ์„ธ์š”. ์ฝ”๋“œ๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์— ์ต์ˆ™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํƒ€์ž„ ์Šคํƒฌํ”„์™€ uuid๊ฐ€์žˆ๋Š” ์ƒˆ ์บ์‹œ๋Š” ํ•ฉ๋ฆฌ์ ์ธ ํ•ดํ‚น์ฒ˜๋Ÿผ ๋“ค๋ฆฝ๋‹ˆ๋‹ค.
์ด์ƒ์ ์œผ๋กœ๋Š” ์บ์‹œ์—†์ด ์ง์ ‘ ํŒŒ์ผ์„ ๋ณต์‚ฌํ•ด์•ผํ•˜์ง€๋งŒ
๋” ๋ณต์žกํ•œ ๋ณ€ํ™”.
PR ๋ณด๋‚ด๊ธฐ

2017 ๋…„ 3 ์›” 7 ์ผ ํ™”์š”์ผ 03:38์— Matt Traynham [email protected] ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

@bestander https://github.com/bestander ์ด๊ฒƒ์€ ๊ฝค ํฐ ์ฐจ๋‹จ๊ธฐ์ž…๋‹ˆ๋‹ค
๋‚˜๋ฅผ ์œ„ํ•ด ๋‹ค์ค‘ ๋ชจ๋“ˆ ํ”„๋กœ์ ํŠธ์—์„œ ์ผํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. @donaldpipowitch๋ฅผ ์ฝ๊ณ  ์žˆ๋‹ค๋ฉด
https://github.com/donaldpipowitch ์˜ ์ฝ”๋“œ ๋งํฌ ๋ฐ ๋Œ“๊ธ€
์˜ฌ๋ฐ”๋ฅด๊ฒŒ, ํŒŒ์ผ ๋ฆฌ์กธ๋ฒ„๊ฐ€ ์ƒˆ ํ•ด์‹œ๋ฅผ ์ƒ์„ฑํ•˜๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
null) ํ•ด๊ฒฐํ•˜๋ ค๊ณ  ํ•  ๋•Œ๋งˆ๋‹ค ๊ฐ•์ œ๋กœ ๋‹ค์‹œ ์„ค์น˜ํ•ฉ๋‹ˆ๊นŒ? UUID ๋งํ•˜๊ธฐ
๋˜๋Š” ํ˜„์žฌ ํƒ€์ž„ ์Šคํƒฌํ”„? ๋น ์ง„ ๊ฒŒ ์žˆ์œผ๋ฉด ์šฉ์„œ ํ•ด์ค˜ ๋‚ฏ์„ค์–ด
์ฝ”๋“œ๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ.

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/yarnpkg/yarn/issues/2165#issuecomment-284612526 ๋˜๋Š” ์Œ์†Œ๊ฑฐ
์‹ค
https://github.com/notifications/unsubscribe-auth/ACBdWDS3xSr8KNu1o9Zn8sA9xdO8pyHOks5rjNEmgaJpZM4LFbmf
.

@bestander ๊ท€ํ•˜์˜ ๋งˆ์ง€๋ง‰ ์ฝ”๋ฉ˜ํŠธ์— ๊ด€ํ•˜์—ฌ : ํŒŒ์ผ์„ ๋ณต์‚ฌํ•˜๋Š” ๋Œ€์‹  ์‹ฌ๋ณผ๋ฆญ ๋งํฌํ•˜๋Š” ๊ฒƒ์ด ๋” ํ•ฉ๋ฆฌ์ ์ด์ง€ ์•Š์Šต๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ๊ทธ๋ ‡๊ฒŒํ•˜์ง€ ์•Š์„ ์ด์œ ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

@danrot ์ฐฝ์€ ๊ด€๋ฆฌ์ž๊ฐ€ ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ์š”๊ตฌํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๋˜ํ•œ ๋…ธ๋“œ ๋ชจ๋“ˆ์„ ์ฐพ๊ธฐ ์œ„ํ•ด ์žฌ๊ท€๋ฅผ ์—‰๋ง์œผ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

Symlink๋Š” ๋˜ํ•œ .npmignore ๋“ฑ์„ ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค. (ํ˜„์žฌ ๋ฌด์‹œ๋˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค : https://github.com/yarnpkg/yarn/issues/1496#issuecomment-282688818)

ํ˜„์žฌ ์ „์ฒด ์บ์‹œ๋ฅผ ์ง€์šฐ๋Š” ๊ฒƒ์„ ๊ธˆ์ง€ํ•˜๋Š” ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋ถˆํ–‰ํžˆ๋„ yarn cache rm package ์ข…๋ฅ˜์˜ ๋ช…๋ น์ด์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

@ rhys-e์ด ์ž‘์€ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

#!/bin/sh
if [ $# != 1 ]
then
   echo Usage $0 package-name
   exit 1
else
    echo Reinstalling $1
fi

dir="node_modules/$1"

if [ -d $dir ]
then
    rm -fr $dir
fi

cache=`yarn cache dir`/npm-${1}*
#        echo $cache
rm -fr $cache && yarn install --force

๋ˆ„๊ตฌ๋Š” ๊ฒƒ์„ ์‹œ๋„ํ–ˆ๋‹ค yarn link ๋ชจ๋“  ๋กœ์ปฌ ์ข…์†์„ฑ์„ postinstall ? ์ ์ ˆํ•œ ํ•ด๊ฒฐ์ฑ…์ด ๋‚˜์˜ฌ ๋•Œ๊นŒ์ง€ ์ ์ ˆํ•œ ํ•ด๊ฒฐ์ฑ…์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

์•„์ด๋””์–ด๋Š” ๋กœ์ปฌ ์ข…์†์„ฑ์— ๋Œ€ํ•œ ๋ชจ๋“  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•ด ํŒจํ‚ค์ง€์˜ ๋ฒ„์ „ ๋ฒˆํ˜ธ๋ฅผ ์—…๋ฐ์ดํŠธ ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์›์‚ฌ ๋งํฌ๋Š” ๊ทธ๋ ‡๊ฒŒํ•˜๋„๋ก ๊ฐ•์š” ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. (์‹œ๋„ํ•˜์ง€ ์•Š์•˜๋‹ค)

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

@lucdew ๋งํฌ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‚ด๋ถ€์— ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ์ƒ์„ฑํ•˜๋ฏ€๋กœ ์ตœ์‹  ๋กœ์ปฌ ๋ฒ„์ „์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์žˆ์œผ๋ฉด ์„ค์น˜ํ•˜๊ธฐ ์ „์— ํŠน์ • deps์˜ ์บ์‹œ๋ฅผ ์ •๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์˜ฌ๋ฐ”๋ฅธ ํ•ด๊ฒฐ์ฑ…์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

./node_modules/ ์•„๋ž˜์— ์ƒ์œ„ ํ”„๋กœ์ ํŠธ์˜ ์„ค์น˜๋œ ๋ฒ„์ „์—์„œ ์—…๋ฐ์ดํŠธ๋˜์ง€ ์•Š๋Š” ๋กœ์ปฌ ํŒจํ‚ค์ง€์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์–‘ํ•œ ์กฐํ•ฉ์„ ํ…Œ์ŠคํŠธํ–ˆ์Šต๋‹ˆ๋‹ค. ./node_modules/๋ฅผ ์‚ญ์ œํ•  ํ•„์š”์—†์ด ์ด๋ ‡๊ฒŒํ•˜๋ฉด๋ฉ๋‹ˆ๋‹ค.๋จผ์ €:

yarn cache clean; yarn upgrade file:../<package>

๋งํ•  ํ•„์š”๋„์—†์ด ๋กœ์ปฌ ํŒจํ‚ค์ง€๋ฅผ ์—…๋ฐ์ดํŠธ / ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ธฐ ์œ„ํ•ด ์ˆ˜๋™์œผ๋กœ ์ „์—ญ ์บ์‹œ ์ •๋ฆฌ๋ฅผ ๊ฐ•์ œ ํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค.

@fungilation ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์œผ๋กœ npm์„ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ์ปฌ ์ข…์†์„ฑ์„ ์„ค์น˜ํ•˜๊ณ  ์—…๋ฐ์ดํŠธ๋ฅผ ์›ํ•  ๋•Œ๋งˆ๋‹ค ์ „์ฒด ์บ์‹œ๋ฅผ ์žƒ์ง€ ์•Š๋„๋ก ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

# 2860 ๋ฐ ํ›„์† ๋ณ‘ํ•ฉ ์ปค๋ฐ‹ https://github.com/yarnpkg/yarn/commit/7241de13bb236526fa439a2528fbed319f60ef24์— ๋”ฐ๋ผ ์ด์ œ file: ํ”„๋กœํ† ์ฝœ ์ข…์†์„ฑ์„ "์ƒˆ๋กœ ๊ณ ์นจ"ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

yarn install --force

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

yarn upgrade [file protocol package name]

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

๋˜ํ•œ link: ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ข…์†์„ฑ์„ ์—ฐ๊ฒฐํ•˜๊ธฐ์œ„ํ•œ ํ™œ์„ฑ RFC๊ฐ€ ์žˆ์Œ์ด ๋ถ„๋ช…ํ•ด์กŒ์Šต๋‹ˆ๋‹ค. https://github.com/yarnpkg/rfcs/pull/34์—์„œ ๋”ฐ๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

@mtraynham ํ’€ ๋ฆฌํ€˜์ŠคํŠธ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ๐Ÿ‘Œ ์ด๊ฒƒ์€ ๊ต‰์žฅํ•ฉ๋‹ˆ๋‹ค. --force ์ด ํ•„์š”ํ•œ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๋‚˜๋Š” ํ˜„์žฌ ๊ทธ๊ฒƒ์„ ์ฐพ์ง€ ์•Š๊ณ  ์ •ํ™•ํžˆ ๋ฌด์—‡์„ํ•˜๋Š”์ง€์กฐ์ฐจ ๋ชจ๋ฆ…๋‹ˆ๋‹ค. :) npm์€ --force ํ”Œ๋ž˜๊ทธ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— npm์ฒ˜๋Ÿผ ํ–‰๋™ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์•˜์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ฐ™์€ ํŽธ์ง‘ ์™ธ๋ชจ yarn upgrade [dependency] ์•„๋‹ˆ๋ผ ์ž‘ํ’ˆ. ์ง€์ ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ํ•ญ์ƒ lockfile์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋ฉฐ package.json ๋ฒ„์ „ ๋ณ€๊ฒฝ ๋งŒ ๋ฐ˜์˜ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ๋” ์ ์ ˆํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์›๋ž˜ ๊ฒŒ์‹œ๋ฌผ์„ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค.


์งง์€ ๋ฒ„์ „์€ Yarn์ด ์ž ๊ธˆ ํŒŒ์ผ์ด ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์บ์‹œ ๋ฆฌ์กธ๋ฒ„๋กœ ์•„๋ฌด๊ฒƒ๋„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ž ๊ธˆ ํŒŒ์ผ ๊ฒ€์‚ฌ๋ฅผ ๊ฑด๋„ˆ ๋›ฐ๊ณ  ์บ์‹œ์— ์ƒˆ ๋ฒ„์ „์ด ์žˆ๋Š”์ง€ ๋ฌผ์–ด๋ด์•ผํ•ฉ๋‹ˆ๋‹ค. upgrade ๋˜๋Š” install --force ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

yarn install --force ๋ฌธ์„œ ๋‹น

"์ด์ „์— ์„ค์น˜๋œ ํŒจํ‚ค์ง€๋ฅผ ํฌํ•จํ•˜์—ฌ ๋ชจ๋“  ํŒจํ‚ค์ง€๋ฅผ ๋‹ค์‹œ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค."

์ด๊ฒƒ์€ ์‹ค์ œ๋กœ ์ž ๊ธˆ ํŒŒ์ผ ๋ฌด๊ฒฐ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ๊ฑด๋„ˆ ๋›ฐ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. lockfile ๋ฌด๊ฒฐ์„ฑ ๊ฒ€์‚ฌ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ package.json ํŒŒ์ผ์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ์ •์ƒ์ ์œผ๋กœ ๋ณต๊ตฌํ•˜๋ฉด ํ†ต๊ณผ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ๊ฑด๋„ˆ ๋›ฐ๋ฉด ์บ์‹œ๊ฐ€ ์ž ๊ธˆ ํŒŒ์ผ์— ๋Œ€ํ•ด ๋ˆ„๋ฝ / ๋ถˆ์ผ์น˜ ์ข…์†์„ฑ์„ ํ™•์ธํ•˜๊ณ  ๋ˆ„๋ฝ ๋œ ๊ฒฝ์šฐ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ์ƒˆ๋กญ๊ฑฐ๋‚˜ ๋ˆ„๋ฝ ๋œ ์ข…์†์„ฑ์„ ๋กœ์ปฌ๋กœ ๋‹ค์‹œ ๋ณต์‚ฌํ•˜๋„๋ก ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ npm install / postInstall ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

PR ๋ณ€๊ฒฝ์€ ์ด์ œ ์บ์‹œ์—์„œ file: ์ข…์†์„ฑ์„ ๋ฌดํšจํ™”ํ•˜๊ณ  ์ƒˆ ๋ฒ„์ „์„ ๋กœ์ปฌ๋กœ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ด์ „์—๋Š” file: ์ข…์†์„ฑ์„ ๋ฌดํšจํ™”ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํ”„๋กœํ† ์ฝœ์˜ ๊ฒฝ์šฐ package.json ํŒŒ์ผ์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์€ ์ƒํƒœ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค (์บ์‹œ ๋ฐ ๋กœ์ปฌ).

์ด๊ฒƒ์ด ์šฐ๋ฆฌ์—๊ฒŒ ๋ฌด์—‡์„ ์˜๋ฏธํ•ฉ๋‹ˆ๊นŒ? ํ•˜๋‚˜์˜ file: ์ข…์†์„ฑ๊ณผ ํ•จ๊ป˜ ํ”„๋กœ์ ํŠธ (Angular์—์„œ Webpack๊นŒ์ง€ ๋ฒ”์œ„)์— ๋Œ€ํ•ด ์•ฝ 60 ๊ฐœ์˜ ์ข…์†์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋กœ์ปฌ ์ข…์†์„ฑ ๋งŒ ์ƒˆ๋กœ ๊ณ ์น˜๊ณ  ์‹ถ์€ ๋‘ ๋ฒˆ์งธ install --force ์—์„œ๋Š” ์•ฝ 5 ์ดˆ๊ฐ€ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค ( yarn install ~ 1.5 ์ดˆ์—์„œ ์ฆ๊ฐ€). ๋‚˜์—๊ฒŒ ์ด๊ฒƒ์€ ๋งค์šฐ ๋ฌด์‹œํ•  ๋งŒํ•˜ ๋ฉฐ ์‹ค์ œ๋กœ ์ „์ฒด ํ”„๋กœ์„ธ์Šค์—์„œ ์ž‘์—… ์‹ค์ด ์–ผ๋งˆ๋‚˜ ์ ์€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š”์ง€์— ๋Œ€ํ•ด ๋งค์šฐ ์ธ์ƒ์ ์ž…๋‹ˆ๋‹ค.

์ž ๊ธˆ ํŒŒ์ผ ๊ฒ€์‚ฌ๋ฅผ ๊ฑด๋„ˆ ๋›ฐ๊ณ  ํŠน์ • ํŒŒ์ผ ์ข…์†์„ฑ์— ๋Œ€ํ•ด์„œ๋งŒ ์บ์‹œ๋ฅผ ๊ฒ€์‚ฌํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ CLI ๋ช…๋ น์ด์žˆ๋Š” ๊ฒฝ์šฐ ๋” ๋น ๋ฅผ ์ˆ˜ ์žˆ์ง€๋งŒ ์•„์ง ์ฐพ์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.


๋งํ•œ ๋ชจ๋“  ๊ฒƒ, ๋‚˜๋Š” ์ด๊ฒƒ์„ ๋ฐ˜์ฐฝ๊ณ ๋ผ๊ณ  ๋ถ€๋ฅผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ link: ์™€ ๊ฐ™์€ ๋” ๋‚˜์€ ์†”๋ฃจ์…˜์œผ๋กœ ๋Œ€์ฒด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์•„๋ฌด๋„ ์ •๋ง๋กœ ๋กœ์ปฌ ์˜์กด์„ฑ์„ ์บ์‹œํ•˜๋Š” ๋ฐ ๊ด€์‹ฌ์ด ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ตœ์†Œํ•œ install --force ๋˜๋Š” upgrade ์‚ฌ์šฉ์— ๋”ฐ๋ฅธ ์ถ”๊ฐ€ ์˜ค๋ฒ„ ํ—ค๋“œ๋Š” ๋Œ€๋ถ€๋ถ„ ๋ถ€์ฃผ์˜ํ•˜๋ฉฐ ๋” ์ด์ƒ yarn cache clean; mv node_modules /tmp/ .

์ข‹์€ ๋Œ€๋‹ต์ž…๋‹ˆ๋‹ค. ๐Ÿ‘ ์ ์–ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

yarn์ด ๋กœ์ปฌ ์‹ฌ๋ณผ๋ฆญ ๋งํฌ ํ”„๋กœ์ ํŠธ ํŒŒ์ผ์„ yarn ์บ์‹œ์˜ ํŒŒ์ผ๋กœ ๋ฎ์–ด ์“ฐ๋‚˜์š”? (๊ทธ๊ฒŒ ์ผ์–ด๋‚˜๊ณ ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๊ธฐ ๋•Œ๋ฌธ์—)

PR ๋ณ€๊ฒฝ์€ ์ด์ œ ํŒŒ์ผ : ์บ์‹œ์˜ ์ข…์†์„ฑ์„ ๋ฌดํšจํ™”ํ•˜๊ณ  ์ƒˆ ๋ฒ„์ „์„ ๋กœ์ปฌ๋กœ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์ „ํ™” ํ•  ๋•Œ๋งˆ๋‹ค ๊ทธ์ด ์˜๋ฏธํ•ฉ๋‹ˆ๊นŒ $ yarn ๊ฐ€์ง€๊ณ  ํŒจํ‚ค์ง€ ๋‚ด๋ถ€์— "foo": "file:../" ์˜ ์ข…์†์„ฑ๊ณผ ๊ฐ™์€ ์ƒˆ ๋ณต์‚ฌ๋ณธ "file:../" ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค?

์˜ˆ๋ฅผ ๋“ค์–ด ํŒจํ‚ค์ง€์ด๊ธฐ๋„ ํ•œ ์—ฌ๋Ÿฌ ์˜ˆ์ œ๊ฐ€์žˆ๋Š” ํŒจํ‚ค์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

foo/
foo/examples/
foo/examples/example-1/
foo/examples/example-2/
foo/examples/example-3/
...
foo/examples/example-10/

๊ทธ๋ฆฌ๊ณ  ์ง€๊ธˆ์€ foo ๊ฐ€ ์‹ค ์บ์‹œ์— 10 ๋ฒˆ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ foo ์˜ ๋ชจ๋“  ๋ฒ„์ „ ๋ณ€๊ฒฝ์— ๋Œ€ํ•ด ์˜ˆ์ œ๋ฅผ ํ…Œ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค (๊ทธ๋ฆฌ๊ณ  foo ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์œผ๋กœ ๊ตฌ์„ฑ๋œ ์—ฌ๋Ÿฌ ๋ชจ๋“ˆ์ด ์žˆ์Œ). ๊ทธ๋ž˜์„œ ํ˜„์žฌ ๋‚ด ์›์‚ฌ ์บ์‹œ๊ฐ€ _really_ ๋น ๋ฅด๊ฒŒ ์ปค์ง€๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ์˜ฌ๋ฐ”๋ฅธ ํ–‰๋™์ž…๋‹ˆ๊นŒ?

์บ์‹œ์— ์˜ค๋ž˜๋œ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ๋‚˜์€ ๋Œ€์•ˆ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
yarn 0.26์„ ์‚ฌ์šฉํ•˜๋ฉด link: ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ์ผ์„ ๋ณต์‚ฌํ•˜๋Š” ๋Œ€์‹  ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋˜ํ•œ ์‹ฌ๋ณผ๋ฆญ ๋งํฌ ์ƒ์„ฑ์„ ์ž๋™ํ™” ํ•  ์ž‘์—… ๊ณต๊ฐ„ ( https://github.com/yarnpkg/yarn/issues/3294) ์„ ์ž‘์—…ํ•˜๊ณ 

์˜ˆ, ์ž‘์—… ์†๋„๋ฅผ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๋‹ค ๐Ÿ‘

link: ์€ ์•„์ง npm์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ? (https://github.com/npm/npm/pull/15900์ด ์•„์ง ์—ด๋ ค ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.)

npm 5 patchnote ์—์„œ ํŒŒ์ผ์€ ์ด์ œ file: ๊ตฌ๋ฌธ์œผ๋กœ ์ž๋™์œผ๋กœ ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๋ฉ๋‹ˆ๋‹ค.

npm install ./packages/subdir์€ ์ด์ œ ์ผ๋ฐ˜ ์„ค์น˜ ๋Œ€์‹  ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. file : //path/to/tarball.tgz ๋Š” ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์œผ๋ฉฐ ๋””๋ ‰ํ† ๋ฆฌ ๋งŒ ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๋ฉ๋‹ˆ๋‹ค. (# 15900)

๋„ค, npm์—๋Š” link ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

npm install ./packages/subdir์€ ์ด์ œ ์ผ๋ฐ˜ ์„ค์น˜ ๋Œ€์‹  ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

์œ ๊ฐ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฒƒ์„ ๋ณต์‚ฌ ( node_modules )ํ•˜๊ณ  .npmignore ๋˜๋Š” files ํ•„๋“œ๋ฅผ ์กด์ค‘ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ํŒŒ์ผ deps๊ฐ€ ๋™์ผํ•˜๊ฒŒ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ด์ œ ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๊ฐ€ ๋” ๋‚˜๋น ์กŒ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” file : and link : ๋” ๊ฐœ์„  ๋  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ๊ทธ๋“ค ์ž์‹ ์˜ ์žฅ๋‹จ์ ์„ ๊ฐ€์ง„ ๋‹ค๋ฅธ ์ „๋žต์ด ์žˆ๊ณ  Yarn์€ ์‚ฌ๋žŒ๋“ค์ด ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋„๋กํ•ด์•ผํ•œ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด knit RFC๋Š” https://github.com/yarnpkg/rfcs/blob/master/accepted/0000-yarn-knit.md ์ „๋žต ์ค‘ ํ•˜๋‚˜๋กœ ๊ตฌํ˜„ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

์บ์‹œ์— ์˜ค๋ž˜๋œ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ๋‚˜์€ ๋Œ€์•ˆ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

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

์•ˆ๋…•ํ•˜์„ธ์š”, ๋ฌธ์ œ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ํŠนํžˆ ๋™์ผํ•œ ์—ฐ๊ฒฐ๋œ ๋‹ค์ค‘ ์ข…์†์„ฑ์— ์˜์กดํ•˜๋Š” ์—ฌ๋Ÿฌ ์ œํ’ˆ์„ ํ•œ ๋ฒˆ์— ์ž‘์—… ํ•  ๋•Œ ํŠนํžˆ ํฐ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ ํ•˜๋ฃจ์— ๊ธฐ๊ฐ€ ๋ฐ”์ดํŠธ์˜ ์บ์‹œ ๋“ฑ. ์ ์–ด๋„ ์„ ํƒ ์‚ฌํ•ญ์œผ๋กœ ๋งŒ๋“ค๊ณ  ๊ทธ๋Ÿฌํ•œ ํŒจํ‚ค์ง€์— ๋Œ€ํ•œ ์บ์‹ฑ์„ ๋น„ํ™œ์„ฑํ™” ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@nikdojo ์ข…์†์„ฑ์— ๋Œ€ํ•ด file: ๋Œ€์‹  ์›์‚ฌ link: ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. 0.26 ์—์„œ

๋˜๋Š” ํ”„๋กœ์ ํŠธ ๊ฐ„ ์ข…์†์„ฑ์ด ๋งŽ์€ ๊ฒฝ์šฐ ์ž‘์—… ๊ณต๊ฐ„ ์‚ฌ์šฉ์„ ์‹œ์ž‘ํ•˜์‹ญ์‹œ์˜ค.

ํžŒํŠธ๋ฅผ ์œ„ํ•ด @mtraynham Thx, ๊ณต์‹ ๋ฌธ์„œ์—์„œ link: ํ”„๋กœํ† ์ฝœ ์ •๋ณด๋ฅผ ์ฐพ์œผ๋ ค๊ณ ํ–ˆ์ง€๋งŒ ๊ฑฐ๊ธฐ์—์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ ์ž‘์—… ๊ณต๊ฐ„์„ ์‹คํ—˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

@bestander btw ์•„์‹œ๋‹ค์‹œํ”ผ react-native๋Š” ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ rn libs๋กœ ์ž‘์—…ํ•˜๋ฉด ์—ฌ์ „ํžˆ ํฐ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๊ฒฐ์ฝ” ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๊นŒ? ๋กœ์ปฌ ํŒจํ‚ค์ง€๋ฅผ ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด linklocal (NPM ํŒจํ‚ค์ง€)์„ ์‚ฌ์šฉํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค (์บ์‹ฑ ๋Œ€์‹  Windows์—์„œ ์ ‘ํ•ฉ ๋˜๋Š” ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ์ปฌ ํŒŒ์ผ ์‹œ์Šคํ…œ์—์„œ ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ yarn์ด ์ž‘๋™ํ•˜๋Š” ํ‘œ์ค€ ๋ฐฉ์‹์ด์–ด์•ผ ํ•จ). ์ƒˆ๋กœ์šด yarn install ๋Š” ์บ์‹œ์—์žˆ๋Š” ์˜ค๋ž˜๋œ ํ•ญ๋ชฉ์œผ๋กœ ๋ชจ๋“  ๊ฒƒ์„ ๋ฎ์–ด ์“ฐ๊ณ  ๋‹ค์‹œ ์—ฐ๊ฒฐ์„ ์‹œ์ž‘ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๊ฑด์ถ• ์šฐ์ฃผ ๋น„ํ–‰์‚ฌ๊ฐ€ ๋œํ•˜๊ณ  ๋‹จ์ˆœํžˆ ๋กœ์ปฌ ํŒจํ‚ค์ง€๋ฅผ ์บ์‹œํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์ด ๋ฌธ์ œ๋Š” ์ด์ œ 1.5 ๋…„์ด๋˜์—ˆ์œผ๋ฉฐ another-local-package ์—์„œ ๋ฌด์–ธ๊ฐ€๋ฅผ ๋ณ€๊ฒฝํ•  ๋•Œ๋งˆ๋‹ค yarn add ../<another-local-package> ์‹คํ–‰ํ•˜๋Š” ๋ฐ ์ง€์ณค์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” @fungilation
๋‹ค๋ฅธ ๊ด€๋ จ ๋ฌธ์ œ๋ฅผ ์—ด์—ˆ์Šต๋‹ˆ๋‹ค : # 6037

์ž‘๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค
App.js ํŒŒ์ผ์— ๋„ฃ์—ˆ์Šต๋‹ˆ๋‹ค.
console.log ( 'here we are'), ์ถœ๋ ฅ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฐ ๋‹ค์Œ ๋ชจ๋“  ํŒŒ์ผ์„ ์ œ๊ฑฐํ•ด๋„ ์—ฌ์ „ํžˆ ์บ์‹œ์—์„œ ์ถœ๋ ฅ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
์ด๊ฒƒ์„ ํ”ผํ•˜๋Š” ๋ฐฉ๋ฒ•?

Yarn์€์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ์ •๋ง ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์„ ์ œ์™ธํ•˜๊ณ ๋Š” ๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒƒ์— ํ›Œ๋ฅญํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ ๋ชฉ์ ์œผ๋กœ ์ƒˆ ๋ฒ„์ „์˜ ๋กœ์ปฌ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๋ ค๊ณ ํ–ˆ๋Š”๋ฐ ๋‚ด๊ฐ€ ๋ฌด์—‡์„ํ•˜๋“  ๊ณ„์† ์ด์ „ ํŒจํ‚ค์ง€๋กœ ๋๋‚ฉ๋‹ˆ๋‹ค.

๋‚œ ๋…ธ๋ ฅ ํ–ˆ์–ด:

  1. ์›์‚ฌ ์บ์‹œ ์ฒญ์†Œ ( yarn cache clean package-name )
  2. yarn add 'ing with --force
  3. ๋‹ค์‹œ node_modules/package-name ๋ฐ yarn add ์ œ๊ฑฐ
  4. ๋กœ์ปฌ ํŒจํ‚ค์ง€์˜ ๋ฒ„์ „ ๋ฒˆํ˜ธ ๋ฐ ํŒŒ์ผ ์ด๋ฆ„ ์—…๋ฐ์ดํŠธ ( yarn ์€ ์ตœ์‹  ๋ฒ„์ „์„ ์„ค์น˜ํ•œ๋‹ค๊ณ ๋ณด๊ณ ํ•˜๋”๋ผ๋„
  5. ์œ„์˜ ๋ชจ๋“  ์กฐํ•ฉ

์ด๊ฑด ๋ง๋„ ์•ˆ ๋ผ์š”. ์ €๋Š” ํ•˜๋ฃจ ์ค‘ ๊ฑฐ์˜ 4 ์‹œ๊ฐ„์„ ์ด๊ฒƒ์— ๋ณด๋ƒˆ์Šต๋‹ˆ๋‹ค.

๋กœ์ปฌ ํŒจํ‚ค์ง€๋ฅผ ๊ฐœ๋ฐœํ•˜๊ณ  ์žฌ์„ค์น˜ ํ•  ์ˆ˜์žˆ๋Š” ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค . .bin ํด๋”์— ํŒŒ์ผ์„ ์„ค์น˜ํ•˜๊ธฐ ์œ„ํ•ด yarn์— ์˜์กดํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ yarn link ๋Š” ๋ฌธ์ œ๊ฐ€๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@ Yarn ๊ฐœ๋ฐœ์ž : ๋กœ์ปฌ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๊ณ  ํ•ด๋‹น ๋กœ์ปฌ ํŒจํ‚ค์ง€๋ฅผ ๋ณ€๊ฒฝ ํ•œ ๋‹ค์Œ ๋‹ค์‹œ ์„ค์น˜ํ•˜์—ฌ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ฐ˜์˜ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@gregjacobs ์ €๋Š” yarn install --force ์„ฑ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค

@jonathantorley ๋ฐฉ๊ธˆ --force ๋‹ค์‹œ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์›์‚ฌ 1.12.3์—์„œ๋Š” ์—ฌ์ „ํžˆ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

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

yarn ์€ (๋Š”) ๋กœ์ปฌ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•  ๋•Œ์ด ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์š”๊ตฌํ•˜์ง€ ์•Š์•„์•ผํ•ฉ๋‹ˆ๋‹ค.

preinstall ์Šคํฌ๋ฆฝํŠธ์— yarn upgrade MY_PACKAGE_NAME ํ–ˆ๋Š”๋ฐ ์ตœ์‹  NPM ๋ฒ„์ „์œผ๋กœ ์ž˜ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฉ๋‹ˆ๋‹ค. (๊ทธ๋ž˜๋„ NPM ๋ฒ„์ „์„ ์ˆ˜๋™์œผ๋กœ ์˜ฌ๋ ค์•ผํ•ฉ๋‹ˆ๋‹ค).

์ด์ œ yarn add file:PATH ์€ (๋Š”) ์ด์ œ ์›์‚ฌ 1.13.0์—์„œ ํ•ญ์ƒ ์ƒˆ ์ฝ˜ํ…์ธ ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
yarn install ์•„์ง ์—†์Šต๋‹ˆ๋‹ค.

@leavesster ์—ฌ์ „ํžˆ ๋‚˜๋ฅผ ์œ„ํ•ดํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์—…๋ฐ์ดํŠธํ•˜๋ ค๋ฉด tgz์˜ ์ด๋ฆ„์„ ๋ฐ”๊ฟ”์•ผํ•ฉ๋‹ˆ๋‹ค.

link ๋ช…๋ น์„ ์‚ฌ์šฉํ•ด๋ณด์‹ญ์‹œ์˜ค : https://yarnpkg.com/lang/en/docs/cli/link/

yarn add file:PATH ์—์„œ ์ƒˆ ์ฝ˜ํ…์ธ ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ package.json ๋ฐ .npmignore์˜ ํŒŒ์ผ์€ ์กด์ค‘๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํŒจํ‚ค์ง€ ๋ฒ„์ „์„ ๋ณ€๊ฒฝํ•˜๋ฉด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

yarn add file:PATH ์—์„œ package.json ๋ฐ .npmignore์˜ ํŒŒ์ผ์„ ์กด์ค‘ํ•˜๋„๋กํ•˜๋ ค๋ฉด ๋กœ์ปฌ ํŒจํ‚ค์ง€ ์ข…์†์„ฑ์—์„œ yarn pack ๋ฅผ ์‹คํ–‰ ํ•œ ๋‹ค์Œ ์„ค์น˜ํ•˜๋ ค๋Š” ์œ„์น˜์—์„œ yarn add file:path-to-local-pacckage.tgz ์‹คํ–‰ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

link ๋ช…๋ น์„ ์‚ฌ์šฉํ•ด๋ณด์‹ญ์‹œ์˜ค : https://yarnpkg.com/lang/en/docs/cli/link/

yarn link ์€ (๋Š”) ๋™์ผํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ์œ„ํ•œ ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€ package.json ๋ฐ .npmignore์˜ ํŒŒ์ผ๊ณผ ๊ด€๋ จํ•˜์—ฌ ๊ฒŒ์‹œ ๋œ ๊ฒƒ์ฒ˜๋Ÿผ npm ํŒจํ‚ค์ง€๋ฅผ ์›ํ•˜๋Š” ๊ฒฝ์šฐ ์ข‹์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@leavesster ์—ฌ์ „ํžˆ ๋‚˜๋ฅผ ์œ„ํ•ดํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์—…๋ฐ์ดํŠธํ•˜๋ ค๋ฉด tgz์˜ ์ด๋ฆ„์„ ๋ฐ”๊ฟ”์•ผํ•ฉ๋‹ˆ๋‹ค.

๋‚ด ํŒจํ‚ค์ง€์— yarn add file: PACKAGE_PAH ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ˜„์žฌ ํ”„๋กœ์ ํŠธ์— ์ถ”๊ฐ€ํ•˜๋Š” tgz ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋‚ด ํŒจํ‚ค์ง€์— js ์ฝ”๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด์ฉŒ๋ฉด tgz๊ฐ€ ์—ฌ์ „ํžˆ ํ‹€๋ ธ์„๊นŒ์š”?

๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ•˜์ง€๋„

@bestander ์ด ๋ฌธ์ œ๊ฐ€ ์ข…๊ฒฐ ๋œ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? Yarn์€ ์—ฌ์ „ํžˆ โ€‹โ€‹๋กœ์ปฌ ํŒŒ์ผ๊ณผ tgz ํŒจํ‚ค์ง€๋ฅผ ์บ์‹ฑํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํ•œ ํŒจํ‚ค์ง€์— ํŠน์ • ๋ฒ„์ „์˜ deps๊ฐ€ ์žˆ๊ณ  ๋‹ค๋ฅธ ํŒจํ‚ค์ง€์— ์ฒซ ๋ฒˆ์งธ ํŒจํ‚ค์ง€์™€ ๋™์ผํ•œ devDeps๊ฐ€ ์žˆ์ง€๋งŒ ๋‹ค๋ฅธ ๋ฒ„์ „์ด์žˆ๋Š” ๊ฒฝ์šฐ, ๊ทธ๋ฆฌ๊ณ  ํ•œ ํŒจํ‚ค์ง€๋ฅผ ๋‹ค๋ฅธ ํŒจํ‚ค์ง€์— ์—ฐ๊ฒฐํ•˜๋ฉด ํ”„๋กœ์ ํŠธ๊ฐ€ ์†์ƒ๋œ ๊ฒฝ์šฐ์™€ ๊ฐ™์ด ์ผ๋ถ€ ๊ฒฝ์šฐ ์ž‘์—… ๊ณต๊ฐ„์€ ์†”๋ฃจ์…˜์ด ์•„๋‹™๋‹ˆ๋‹ค. .

@gregjacobs์™€ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. yarn cache clean package ๋„์›€์ด๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ yarn add path/to/package.tgz ๋ฅผ ์„ค์น˜ ํ•œ ๋‹ค์Œ ์•„์นด์ด๋ธŒ๋ฅผ ๋‹ค๋ฅธ ๊ฒƒ์œผ๋กœ ๋ฐ”๊พธ๋ฉด ์ƒˆ ๋ฒ„์ „์„ ์„ค์น˜ํ•˜๋ฉด yarn add path/to/../to/package.tgz ์™€ ๊ฐ™์€ ๊ฒฝ๋กœ

yarn cache list --pattern package ์กฐ์ฐจ๋„ ๋น„์–ด์žˆ๋Š” ํ•ด์ƒ๋„ ๊ฒฝ๋กœ๋กœ ์บ์‹œ ๋œ ํŒจํ‚ค์ง€๋ฅผ ์ €์žฅํ•˜๋Š” ๋‹ค๋ฅธ ์œ„์น˜๋ฅผ ์ดํ•ดํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ๊ฐ€ ์—ฌ๊ธฐ ์–ด๋”˜๊ฐ€์— ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค https://github.com/yarnpkg/yarn/blob/eb2b565bb9b948e87b11119482ebc184a9d66141/src/resolvers/exotics/tarball-resolver.js#L58 -L63

๋ฌด์Šจ ์ผ์ด์•ผ:

  • URL path/to/package.tgz ์—์„œ ํ•ด์‹œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค (์ด๊ฒƒ์ด path/to/package.tgz ๋ฐ path/to/../to/package.tgz ๊ฒฐ๊ณผ๊ฐ€ ๋‹ค๋ฅธ ํ•ด์‹œ๋กœ ๋ณ€ํ™˜๋˜๋Š” ์ด์œ ์ž…๋‹ˆ๋‹ค).
  • ์ด ํ•ด์‹œ๋กœ ํŒจํ‚ค์ง€์— ๋Œ€ํ•œ ์ž„์‹œ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค (์˜ˆ /Users/kich/Library/Caches/Yarn/v4/.tmp/c019816ee7d10ed5e1fef4072e8cc617 ).
  • ์ฒซ ์‹คํ–‰ isValidModuleDest ๋ฐ˜ํ™˜ false
  • ์ด ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ์ถ”์ถœ ๋œ Tarball ํŒจํ‚ค์ง€
  • ํ”„๋กœ์ ํŠธ์— ์„ค์น˜๋œ ํ•ด๋‹น ๋””๋ ‰ํ† ๋ฆฌ์˜ ํŒŒ์ผ
  • ๊ฐœ๋ฐœ ํ”„๋กœ์ ํŠธ ์†Œ์Šค๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  ์ด์ „ ํŒจํ‚ค์ง€์™€ ๋™์ผํ•œ ์ด๋ฆ„ ๋ฐ ์œ„์น˜๋กœ ์ƒˆ ํŒจํ‚ค์ง€ tarball์„ ๋นŒ๋“œ / ํŒจํ‚นํ•ฉ๋‹ˆ๋‹ค.
  • ๊ทธ๋ฆฌ๊ณ  ์ƒˆ๋กœ์šด tarball์„ ์„ค์น˜ํ•˜๋ ค๊ณ ํ•˜๋Š”๋ฐ ์ƒ์„ฑ ๋œ ํ•ด์‹œ๊ฐ€ ์ด์ „๊ณผ ๊ฐ™๊ณ  ์ฒซ ์‹คํ–‰ ํ›„ ์ž„์‹œ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์ง€์›Œ์ง€์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
  • ๋”ฐ๋ผ์„œ ์ด๋ฒˆ์—๋Š” isValidModuleDest return true
  • ๊ทธ๋ฆฌ๊ณ  ์› ์‚ฌ๋Š” ์ด์ „ ๋ฒ„์ „์˜ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
  • yarn cache clean package ๋ฅผ ์‹คํ–‰ํ•˜์ง€๋งŒ ์ž„์‹œ ๋””๋ ‰ํ† ๋ฆฌ๋Š” ๊ทธ๋Œ€๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.

@bestander ์—ฌ๊ธฐ์„œ ์ž„์‹œ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ œ๊ฑฐ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? https://github.com/yarnpkg/yarn/blob/master/src/config.js#L431 ?

๊ฐ™์€ ๋ฌธ์ œ์— ์ง๋ฉดํ•˜์—ฌ ์ž„์‹œ ํด๋” ์•„๋ž˜์˜ ์บ์‹œ๋Š” ๋‹จ ํ•˜๋ฃจ ๋™์•ˆ ๋กœ์ปฌ pacakge์—์„œ ์ž‘์—… ํ•œ ํ›„ 10GB๊ฐ€ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค!

์ด ๋ฌธ์ œ๋ฅผ ๋‹ค์‹œ ์—ด ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์šฐ๋ฆฌ๋Š” ๊ฐ™์€ ๋ฌธ์ œ์— ์ง๋ฉด ํ•ด ์žˆ์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ์„ ํ†ตํ•ด ๋‹ค๋ฅธ ํŒจํ‚ค์ง€๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๋‘ ํ”„๋กœ์ ํŠธ :. CI / CD ์„œ๋ฒ„์—์„œ ์ผ๋ถ€ ๋นŒ๋“œ ํ›„ ์บ์‹œ ํด๋”๊ฐ€ ๋งŽ์€ ๊ณต๊ฐ„์„ ์ฐจ์ง€ํ•˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

๋งํฌ ํ”„๋กœํ† ์ฝœ์ด ์ด์— ๋Œ€ํ•œ ์ตœ์„ ์˜ ์ˆ˜์ •์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. file : //์€ ์—ฌ์ „ํžˆ โ€‹โ€‹์ˆ˜๋™์œผ๋กœ ์บ์‹œ๋ฅผ ์ •๋ฆฌํ•˜๊ณ  ๊ฐ•์ œ ์„ค์น˜๊ฐ€ ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

https://github.com/yarnpkg/yarn/issues/2165#issuecomment -345825904

์ข…์†์„ฑ์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋งŒ๋“œ์‹ญ์‹œ์˜ค.

"<package>": "link:./libs/<package>"

@alxtz ๋งํฌ ํ”„๋กœํ† ์ฝœ์ด tgz์˜ ํŒจํ‚ค์ง€์™€ ํ•จ๊ป˜ ์ž‘๋™ํ•ฉ๋‹ˆ๊นŒ?

๋งํฌ ํ”„๋กœํ† ์ฝœ์ด ์ด์— ๋Œ€ํ•œ ์ตœ์„ ์˜ ์ˆ˜์ •์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. file : //์€ ์—ฌ์ „ํžˆ โ€‹โ€‹์ˆ˜๋™์œผ๋กœ ์บ์‹œ๋ฅผ ์ •๋ฆฌํ•˜๊ณ  ๊ฐ•์ œ ์„ค์น˜๊ฐ€ ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

# 2165 (์ฝ”๋ฉ˜ํŠธ)

์ข…์†์„ฑ์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋งŒ๋“œ์‹ญ์‹œ์˜ค.

"<package>": "link:./libs/<package>"

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ node_modules ์—์„œ file:.. ์ฐธ์กฐ๋ฅผ ์‹ฌ๋ณผ๋ฆญ ๋งํฌํ•˜๋Š” NPM์˜ ๋™์ž‘์„ ๋ณต์ œํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์„œํ™”๋˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ ์–ด๋„ ์—ฌ๊ธฐ์—์„œ ์ฐพ์„ ์ˆ˜์žˆ๋Š” ๊ณณ์€ ์—†์Šต๋‹ˆ๋‹ค : https://yarnpkg.com/lang/en/docs/package-json/

์•ˆํƒ€๊น๊ฒŒ๋„ link ๋Š” ๋ชจ๋“  ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, SDK ํŒจํ‚ค์ง€์—์„œ ๊ณต์œ  / ํ”ผ์–ด ์ข…์†์„ฑ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋ณ€๊ฒฝํ•˜๋ฉด ๋กœ์ปฌ ๊ฐœ๋ฐœ ์ž‘์—…์„ ์œ„ํ•ด ๋งํฌ๋ฉ๋‹ˆ๋‹ค.
link ํ•˜๋ฉด yarn์€ ์ข…์†์„ฑ์ด ๊ณต์œ  / ํ”ผ์–ด ์ข…์†์„ฑ์ž„์„ ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๋ฉฐ ์ž˜๋ชป๋œ ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๊ฐ€์žˆ๋Š” ๋กœ์ปฌ ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์‚ฌ์šฉํ•˜๊ณ  yarn pack ํ•จ๊ป˜ yarn add file:<path_to_packed_tgz> ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด.
@wKich ํ™˜์ƒ์ ์ธ ๋ฐœ๊ฒฌ์— ๋”ฐ๋ผ ๋™์ผํ•œ ํ•ด์‹œ๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๋„๋ก ํŒจํ‚ค์ง€๋ฅผ ํฌ์žฅํ•˜๊ณ  ๋‚ด ์ €์žฅ์†Œ์— ๋ถ™์—ฌ ๋„ฃ์„ ๋•Œ๋งˆ๋‹ค ํŒจํ‚ค์ง€ ์ด๋ฆ„์„ ๊ณ„์† ๋ฐ”๊ฟ€ ์ˆ˜๋Š” ์žˆ์ง€๋งŒ ์„ฑ๊ฐ€์‹  ์ผ์ž…๋‹ˆ๋‹ค.

์ €์žฅ์†Œ๋ฅผ ๋ถ„๊ธฐํ•˜๊ณ  if ๋ฌธ์— ์ถ”๊ฐ€ ์ ˆ์„ ์ถ”๊ฐ€ํ•˜์—ฌ yarn์ด yarn add file:<path> ์‚ฌ์šฉํ•˜์—ฌ ์ง€์ •๋œ ๊ฒฝ์šฐ ์บ์‹œ์—์„œ ๋กœ์ปฌ .tgz ํŒจํ‚ค์ง€๋ฅผ๋กœ๋“œํ•˜์ง€ ๋ชปํ•˜๋„๋กํ•ฉ๋‹ˆ๋‹ค.

const dest = this.config.getTemp(crypto.hash(url));
// If specified using file: never load from cache
if (!url.match(/file:/) && (await this.config.isValidModuleDest(dest))) {
  // load from local cache
} else {
  // continue as if it's a new package
}

์‚ฌ๋žŒ๋“ค์ด ์›ํ•˜๋ฉด PR์„ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ „์—๋Š” ํ•ด๋ณธ ์ ์ด์—†๊ณ  ๊ฝค ์—‰๋šฑํ•œ ์ˆ˜์ •์ž…๋‹ˆ๋‹ค.
์ด ์ ‘๊ทผ ๋ฐฉ์‹์ด ์›์‚ฌ์˜ ์บ์‹œ์— ๋กœ์ปฌ ํŒจํ‚ค์ง€๋ฅผ ๊ณ„์† ์ถ”๊ฐ€ํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ๋ˆ„๊ตฐ๊ฐ€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์ง€๊ธˆ์€ @ojboj , yalc ์ด (๊ฐ€) ์ œ๋Œ€๋กœ ์ˆ˜์ • ๋  ๋•Œ๊นŒ์ง€ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒŒ์‹œํ•˜๊ธฐ ์ „์— ๋กœ์ปฌ์—์„œ ํŒจํ‚ค์ง€๋ฅผ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒƒ์ด ์ •๋ง ์ž˜ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

@souporserious ๊ทธ๊ฒƒ์ด ๋‚ด๊ฐ€ ํ•„์š”๋กœ / ์›ํ–ˆ๋˜ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ •๋ง ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

๋ฏธ์ณค์–ด ์ด๊ฒƒ์€ ์ˆ˜๋…„์ด ์ง€๋‚œ ํ›„์—๋„ ์—ฌ์ „ํžˆ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

[email protected]์— ๊ณ ์ •๋˜์–ด

@wKich ๊ทธ๋ ‡๊ฒŒ ๋ฏฟ์Šต๋‹ˆ๋‹ค! ๊ฐœ์ธ์ ์œผ๋กœ ํ…Œ์ŠคํŠธํ•˜์ง€๋Š” ์•Š์•˜์ง€๋งŒ ์ƒˆ๋กœ์šด ํฌํ„ธ ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•ด ๋กœ์ปฌ ๊ฐœ๋ฐœ์„ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์—ฌ์ „ํžˆ link: ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ "unpack in same destination"์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ์บ์‹œ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ฐธ์กฐํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ yarn์ด ์—ฌ์ „ํžˆ link: ์ข…์†์„ฑ์„ ์บ์‹ฑํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ์˜ค๋ฅ˜์—์„œ front-end ๋ฐ renderer ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ ์•ฑ์˜ .deps/ ํด๋”์— ๋ณต์‚ฌ ๋œ ๋™์ผํ•œ ๋กœ์ปฌ ํŒจํ‚ค์ง€์˜ ๋ณต์‚ฌ๋ณธ 2 ๊ฐœ๋ฅผ ์ฐธ์กฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. (๊ด€๋ จ์—†๋Š” ์ด์œ ๋กœ ์›๋ณธ์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†์Œ)

warning Pattern ["@horizon/common<strong i="11">@link</strong>:packages/front-end/.deps/@horizon/common"] is trying to unpack in the same destination "/home/garyo/.cache/yarn/v6/[email protected]/node_modules/@horizon/common" as pattern ["@horizon/common<strong i="12">@link</strong>:packages/renderer/.deps/@horizon/common"]. This could result in non-deterministic behavior, skipping.
์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰