<p>๊ฐ€๋”`ENOENT : no such file or directory`์™€ ํ•จ๊ป˜ yarn ์„ค์น˜๊ฐ€ ์‹คํŒจ ํ•จ</p>

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

์‹คํ–‰ yarn install A์˜ ๋นŒ๋“œ ๋‹จ๊ณ„์˜ ์ผ๋ถ€๋กœ์„œ ๋„์ปค ์ด๋ฏธ์ง€ ์— ๊ธฐ์ดˆ node:7 ํŠธ๋ž˜๋น„์Šค CI ์‹คํŒจ ๋กœ ENOTEMPTY , EEXISTS ์˜ค๋ฅ˜. webdriverio ํŒจํ‚ค์ง€์—์„œ ํ•ญ์ƒ ์˜ค๋ฅ˜๊ฐ€์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

yarn install v0.19.1
[1/4] Resolving packages...
[2/4] Fetching packages...
error An unexpected error occurred: "https://registry.yarnpkg.com/webdriverio/-/webdriverio-4.6.2.tgz: ENOENT: no such file or directory, open '/usr/local/share/.cache/yarn/npm-webdriverio-4.6.2-dd095ee618896a21c8f1b9d4278736d85a64ca0f/lib/protocol/timeouts.js'".

Travis๊ฐ€ ์„ค์น˜ ๋‹จ๊ณ„์˜ ์ผ๋ถ€๋กœ yarn install ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค . ์ด ์˜ค๋ฅ˜๋Š” Docker ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œ ํ•  ๋•Œ๋งŒ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ํ•˜๋Š” Repo .

๋…ธ๋“œ : 7
์šด์˜์ฒด์ œ : Docker + Travis CI
์›์‚ฌ : 0.19.1
package.json
yarn.lock

npm install -g ๋ฐ apt ๋ชจ๋‘ ์‚ฌ์šฉํ•˜์—ฌ yarn์„ ์„ค์น˜ํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์œผ๋ฉฐ ๋‘ ๋ฐฉ๋ฒ• ๋ชจ๋‘ Travis์—์„œ ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.

์ด์ƒํ•˜๊ฒŒ๋„ ์ด๋ฏธ์ง€๋Š” Docker ๋ฒ„์ „ 1.13.0, ๋นŒ๋“œ 49bf474๋กœ Ubuntu 16.04.1 LTS๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋กœ์ปฌ ์ปดํ“จํ„ฐ์—์„œ ์„ฑ๊ณต์ ์œผ๋กœ ๋นŒ๋“œ๋ฉ๋‹ˆ๋‹ค.

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

@bestander with --network-concurrency 1 ๋ฒ„๊ทธ๋Š” ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค (๊ทธ๊ฒƒ์ด ์—†์œผ๋ฉด ๋งค๋ฒˆ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค).
๊ทธ๋Ÿฌ๋‚˜์ด ๋งค๊ฐœ ๋ณ€์ˆ˜์˜ ๊ธฐ๋ณธ๊ฐ’์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์–ด๋–ค ๊ฐ’์„ ์„ ํƒํ•˜๋“  (1, 2, 4, 8) ์ž‘๋™ํ•˜์ง€๋งŒ ์ „ํ˜€ ์ž…๋ ฅํ•˜์ง€ ์•Š์œผ๋ฉด ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

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

ํฅ๋ฏธ ๋กญ์Šต๋‹ˆ๋‹ค. Travis์—์„œ๋งŒ ์‹คํŒจํ•˜์ง€๋งŒ ๋กœ์ปฌ์—์„œ ํ…Œ์ŠคํŠธ ํ•  ๋•Œ ์ž‘๋™ํ•ฉ๋‹ˆ๊นŒ? Docker๊ฐ€ ํ™˜๊ฒฝ์˜ ์ผ๊ด€์„ฑ์„ ๋ณด์žฅํ•ด์•ผํ•œ๋‹ค๋Š” ์ ์„ ๊ฐ์•ˆํ•˜๋ฉด ๋งค์šฐ ์ด์ƒํ•ฉ๋‹ˆ๋‹ค.

@ Daniel15 ๋งž์•„์š” ...

๋…ธ๋“œ๋ฅผ ๋ฒ„์ „ 6์œผ๋กœ ๋‹ค์šด ๊ทธ๋ ˆ์ด๋“œํ–ˆ์ง€๋งŒ Travis์—์„œ๋Š” ์—ฌ์ „ํžˆ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. --verbose ํ”Œ๋ž˜๊ทธ๋ฅผ yarn install ์— ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

verbose Performing "GET" request to "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-1.3.4.tgz".
verbose Performing "GET" request to "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz".
verbose Performing "GET" request to "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz".
verbose Performing "GET" request to "https://registry.yarnpkg.com/fibers/-/fibers-1.0.15.tgz".
verbose Performing "GET" request to "https://registry.yarnpkg.com/selenium-standalone/-/selenium-standalone-5.11.2.tgz".
verbose Performing "GET" request to "https://registry.yarnpkg.com/tcp-port-used/-/tcp-port-used-0.1.2.tgz".
verbose Performing "GET" request to "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-5.8.38.tgz".
verbose Error: ENOTEMPTY: directory not empty, rmdir '/usr/local/share/.cache/yarn/npm-webdriverio-4.6.2-dd095ee618896a21c8f1b9d4278736d85a64ca0f/lib/protocol'
    at Error (native)
error An unexpected error occurred: "ENOTEMPTY: directory not empty, rmdir '/usr/local/share/.cache/yarn/npm-webdriverio-4.6.2-dd095ee618896a21c8f1b9d4278736d85a64ca0f/lib/protocol'".

๋‚˜๋Š” ์ด๊ฒƒ์„ ๋””๋ฒ„๊น…ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์•„์ด๋””์–ด์— ์—ด๋ ค ์žˆ์Šต๋‹ˆ๋‹ค.

์›์‚ฌ 0.18.1๋กœ ๋‹ค์šด ๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. 0.19๋Š” ํšŒ๊ท€๊ฐ€์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. # 1834 ์ฐธ์กฐ

๋˜ํ•œ ์›์‚ฌ 0.23.3์—์„œ๋„์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค ๋•Œ๊ฐ€ ์•„๋‹ˆ๋ผ ๋‹จ์ˆœํžˆ CI๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
์˜ค๋ฅ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

$ time yarn --frozen-lockfile
yarn install v0.20.3
[1/4] Resolving packages...
[2/4] Fetching packages...
error An unexpected error occurred: "ENOTEMPTY: directory not empty, rmdir '/builds/linagora/petals-cockpit/yarncache/npm-@angular/core-4.0.0-beta.8-8d9c8a64e7c26ff7208404e716deea94bb509cd7/src'".
info If you think this is a bug, please open a bug report with the information provided in "/builds/linagora/petals-cockpit/frontend/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

real    0m9.812s
user    0m7.596s
sys 0m0.932s

ํŒŒ์ผ์„ ์ œ๊ฑฐํ•˜๋Š” ์ด์ƒํ•œ ๋ฐฉ๋ฒ•์ด์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹คโ€ฆ

์ค‘์š”ํ•œ ์  : ์บ์‹œ๊ฐ€ ๋น„์–ด์žˆ์—ˆ์Šต๋‹ˆ๋‹ค!

๋‚ด ์ปดํ“จํ„ฐ์—์„œ ์žฌํ˜„ํ•˜๋ ค๊ณ ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

yarn install v0.20.3
[1/4] Resolving packages...
[2/4] Fetching packages...
error An unexpected error occurred: "http://docker0.gso.lan:8081/repository/npm/@angular/core/-/core-4.0.0-beta.8.tgz: EEXIST: file already exists, mkdir '/home/vnoel/.cache/yarn/npm-@angular/core-4.0.0-beta.8-8d9c8a64e7c26ff7208404e716deea94bb509cd7/src/metadata'".
info If you think this is a bug, please open a bug report with the information provided in "/home/vnoel/Linagora/Petals/dev/git/petals-cockpit-new/frontend/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

๊ทธ๋ฆฌ๊ณ  ์›์‚ฌ 0.21.2 :

yarn install v0.21.2
[1/4] Resolving packages...
[2/4] Fetching packages...
error An unexpected error occurred: "http://docker0.gso.lan:8081/repository/npm/@angular/core/-/core-4.0.0-beta.8.tgz: ENOENT: no such file or directory, lstat '/home/vnoel/.cache/yarn/npm-@angular/core-4.0.0-beta.8-8d9c8a64e7c26ff7208404e716deea94bb509cd7/bundles/core.umd.js'".
info If you think this is a bug, please open a bug report with the information provided in "/home/vnoel/Linagora/Petals/dev/git/petals-cockpit-new/frontend/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

๋”์ฐ ํ•ด์š”!

๊ทธ๋ฆฌ๊ณ  ๋‚˜๋Š” 0.18.1 ์— ๋Œ€ํ•ด @twooster์™€ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค!

@ Daniel15 ๋กœ์ปฌ์—์„œ๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์บ์‹œ๊ฐ€ ๋น„์–ด์žˆ์„ ๋•Œ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค!

@victornoel ์ตœ๊ทผ ์˜ค๋ฅ˜๋Š” https://github.com/yarnpkg/yarn/issues/2714 ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@bestander ๋‚˜๋Š” ๋‹น์‹œ 0.19.1์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค ...

๋‚˜๋Š” ์žฌ ์‹œ๋„ํ–ˆ๊ณ  ์ด์ œ ๋ฒ„๊ทธ :

  • ๋นˆ ์บ์‹œ๋กœ ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์ง€๋งŒ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์— ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค (์ •๋ง ์žฌํ˜„ ๊ฐ€๋Šฅํ•˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹คโ€ฆ).

    • rm -rf ์›์‚ฌ ์บ์‹œ

    • ๋ณต์ œ https://gitlab.com/linagora/petals-cockpit.git

    • ๊ฒฐ์ œ 5f31ccb4b2357201baa50539b30702cffceb6992

    • frontend ๋””๋ ‰ํ† ๋ฆฌ์—์„œ yarn ์‹คํ–‰

    • ์ฒดํฌ ์•„์›ƒ ๋งˆ์Šคํ„ฐ

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

    • ๋‚˜๋Š” ์–ป๋Š”๋‹ค : error An unexpected error occurred: "http://docker0.gso.lan:8081/repository/npm/@angular/core/-/core-4.0.0-rc.1.tgz: ENOENT: no such file or directory, utime '/home/vnoel/.cache/yarn/npm-@angular/core-4.0.0-rc.1-7f87b7696b407476e45d6d3c1880a50d5afbb6e3/@angular/core/testing.js'". (๋‚ด ์ž์‹ ์˜ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์ง€๋งŒ ๊ทธ๊ฒƒ ์—†์ด๋„ ๊ฐ™์€ ์ผ์ด ์ผ์–ด๋‚œ๋‹ค)

  • 0.21.2, 0.19.1์—์„œ๋Š” ๋‚˜ํƒ€๋‚˜์ง€๋งŒ 0.18.2์—์„œ๋Š” ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์Œ

๊ทธ๋Ÿฌ๋‹ˆ ๋˜‘๊ฐ™์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ ์–ด๋„ ์žฌํ˜„ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค ...

(์‚ฌ์‹ค, ๋ฐฉ๊ธˆ ๋‹ค์‹œ ์‹œ๋„ํ•˜๊ณ  ๋นˆ ์บ์‹œ์™€ 0.21.2 ์‹ค๋กœ ๋ฒ„๊ทธ๋ฅผ ์žฌํ˜„ํ–ˆ์ง€๋งŒ ์ด์ „์—๋Š” ๊ทธ๋ ‡์ง€ ์•Š์•˜์ง€๋งŒ์ด ๋ฌธ์ œ์˜ ์›์ธ์ด๋˜๋Š” ๋‹ค๋ฅธ ํŒŒ์ผ์ด์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์€๋‹‰์ฒ˜?)

@bestander # 2744๊ฐ€ ์•ผ๊ฐ„ ๋นŒ๋“œ๋กœ ์ œ๊ณต๋˜๋Š” ์ฆ‰์‹œ ์‹ค์„ ํ…Œ์ŠคํŠธ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. :)

๋„์›€์ด ํ•„์š”ํ•˜๋ฉด ํ•‘์„ํ•˜์„ธ์š”.
๊ฐ€์žฅ ์ข‹์€ ์กฐ์น˜๋Š” e2e ํ…Œ์ŠคํŠธ๋ฅผ ์ค‘๋‹จํ•˜๊ณ  ๊ฑด๋„ˆ ๋›ด PR์„ ๋ณด๋‚ด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@bestander ์Œ ,

โžœ  frontend git:(master) โœ— yarn
yarn install v0.22.0-20170227.1509
[1/4] Resolving packages...
[2/4] Fetching packages...
error An unexpected error occurred: "https://registry.yarnpkg.com/@angular/core/-/core-4.0.0-rc.1.tgz: ENOENT: no such file or directory, lstat '/home/vnoel/.cache/yarn/npm-@angular/core-4.0.0-rc.1-7f87b7696b407476e45d6d3c1880a50d5afbb6e3/typings/src/facade/lang.d.ts'".

๋˜๋Š”:

โžœ  frontend git:(master) โœ— yarn
yarn install v0.22.0-20170227.1509
[1/4] Resolving packages...
[2/4] Fetching packages...
error An unexpected error occurred: "https://registry.yarnpkg.com/typescript/-/typescript-2.2.1.tgz: ENOENT: no such file or directory, lstat '/home/vnoel/.cache/yarn/npm-typescript-2.2.1-4862b662b988a4c8ff691cc7969622d24db76ae9/lib/typescriptServices.js'".

e2e ํ…Œ์ŠคํŠธ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๋ณผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@bestander ์–ด์จŒ๋“  ์˜ค๋ฅ˜์˜ ์ „์ฒด ์Šคํƒ

yarn-error.log์—์„œ๋งŒ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Trace: 
  Error: http://docker0.gso.lan:8081/repository/npm/@angular/core/-/core-4.0.0-rc.1.tgz: ENOENT: no such file or directory, lstat '/home/vnoel/.cache/yarn/npm-@angular/core-4.0.0-rc.1-7f87b7696b407476e45d6d3c1880a50d5afbb6e3/@angular/core.es5.js'
      at Error (native)

๊ทธ๊ฒƒ์€ ์•ฝ๊ฐ„ ์“ธ๋ชจ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค :)

์„ธ๋ถ€ ์˜ค๋ฅ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

{ Error: http://docker0.gso.lan:8081/repository/npm/@angular/core/-/core-4.0.0-rc.1.tgz: ENOENT: no such file or directory, lstat '/home/vnoel/.cache/yarn/npm-@angular/core-4.0.0-rc.1-7f87b7696b407476e45d6d3c1880a50d5afbb6e3/@angular/core.js'
    at Error (native)
  errno: -2,
  code: 'ENOENT',
  syscall: 'lstat',
  path: '/home/vnoel/.cache/yarn/npm-@angular/core-4.0.0-rc.1-7f87b7696b407476e45d6d3c1880a50d5afbb6e3/@angular/core.js',
  fstream_type: 'File',
  fstream_path: '/home/vnoel/.cache/yarn/npm-@angular/core-4.0.0-rc.1-7f87b7696b407476e45d6d3c1880a50d5afbb6e3/@angular/core.js',
  fstream_class: 'FileWriter',
  fstream_stack: 
   [ '/home/vnoel/Linagora/Petals/dev/git/yarn/node_modules/fstream/lib/writer.js:285:28',
     '/home/vnoel/Linagora/Petals/dev/git/yarn/node_modules/graceful-fs/polyfills.js:284:29',
     'FSReqWrap.oncomplete (fs.js:123:15)' ] }

์ •ํ™•ํžˆ ๋ฌด์—‡์„ํ•ด์•ผํ• ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹คโ€ฆ package-fetcher.js , 56 ํ–‰์—์„œ ์ •ํ™•ํžˆ ๋ฐœ์ƒํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์†Œ์Šค๋ฅผ ์ฐพ๋Š” ๋ฐ ์–ด๋ ค์›€์ด ์žˆ์Šต๋‹ˆ๋‹คโ€ฆ

์–ด๋ฆฌ์„์€ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ ๋„คํŠธ์›Œํฌ๋กœ ์—ฐ๊ฒฐ๋œ npm ๋ฏธ๋Ÿฌ (ํšŒ์‚ฌ์˜ sonatype nexus)๊ฐ€ @angular/core ์•„ํ‹ฐํŒฉํŠธ๋ฅผ ๋ฏธ๋Ÿฌ๋งํ–ˆ์„ ๋•Œ๋งŒ ์‹คํŒจํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ์ด๋ฏธ ๋ฏธ๋Ÿฌ๋ง ๋œ ๋‹ค๋ฅธ ์•„ํ‹ฐํŒฉํŠธ์—์„œ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค (์ด ๊ฒฝ์šฐ typescript ).

๋„ฅ์„œ์Šค ๊ฑฐ์šธ์—์„œ ์ธ๊ณต๋ฌผ์„ ์†์œผ๋กœ ์ œ๊ฑฐํ•˜๋ฉด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค!

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

๊ฒฐ๋ก ์„ ๋‚ด๋ฆฌ๊ธฐ์—๋Š” ์•ฝ๊ฐ„์˜ ์—ฐ์žฅ์„ ์ด ์žˆ์ง€๋งŒ ๋ฌธ์ œ์˜ ์›์ธ์„ ์ฐพ๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
WDYT @bestander?

๊ธฐ๋ก์„ ์œ„ํ•ด, ์˜ค๋ฅ˜๋Š” ๊ฐ€์ ธ ์˜ค๊ธฐ ํŒŒ์ดํ”„ ๋ผ์ธ์˜ tar.Extract ๋‹จ๊ณ„์—์„œ ๋ฐœ์ƒํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ์™„์ „ํžˆ ํ™•์‹คํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค ^^

๋” ๋งŽ์€ ๊ฒƒ์„ ์กฐ์‚ฌํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค,

https://github.com/yarnpkg/yarn/issues/2629#issuecomment -282745896์—์„œ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์žฌํ˜„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๊ฒƒ์„ ์ฐพ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์–ป๋‹ค

error An unexpected error occurred: "https://registry.yarnpkg.com/typescript/-/typescript-2.2.1.tgz: ENOENT: no such file or directory, lstat '/Users/bestander/Library/Caches/Yarn/npm-typescript-2.2.1-4862b662b988a4c8ff691cc7969622d24db76ae9/lib/typescriptServices.js'".

๊ทธ๋Ÿฌ๋‚˜ yarn install ๋ฐ˜๋ณตํ•ด์„œ ์‹œ๋„ํ•˜๋ฉด ๊ฒฐ๊ตญ ์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋ฉ๋‹ˆ๋‹ค.
.tgz ํŒŒ์ผ ํญ๋ฐœ์ด ์˜ค๋ฅ˜๋กœ ๋๋‚˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ตœ์‹  ์ •๋ณด:

  • .tgz๋Š” ๊ดœ์ฐฎ์•„ ๋ณด์ž…๋‹ˆ๋‹ค. ๊ฐ€์ ธ ์˜ค๊ธฐ ๋‹จ๊ณ„์—์„œ ์‹คํŒจํ•œ ํŒŒ์ผ์„ ์ˆ˜๋™์œผ๋กœ ์••์ถ• ํ•ด์ œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • tar ํŒจํ‚ค์ง€์—์„œ ์–ด๋–ค ์ด์œ ๋กœ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ๋™์‹œ์„ฑ์ผ๊นŒ์š”?

๋ช‡ ๊ฐ€์ง€ ์ข…์†์„ฑ (์ œ ๊ฒฝ์šฐ์—๋Š” typescript ๋ฐ angular-core)์ด ์˜ค๋ฅ˜๋ฅผ ์ผ์œผํ‚ค๋Š” ์ด์œ ๋ฅผ ์กฐ์‚ฌํ•˜๋Š” ๋ฐ ๋„์›€์ด๋ฉ๋‹ˆ๋‹ค.
๋™์‹œ์„ฑ? https://github.com/npm/node-tar์˜ ๋ฒ„๊ทธ

@victornoel , yarn install --network-concurrency 1 ๋ฒ„๊ทธ๋ฅผ ์žฌํ˜„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@bestander with --network-concurrency 1 ๋ฒ„๊ทธ๋Š” ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค (๊ทธ๊ฒƒ์ด ์—†์œผ๋ฉด ๋งค๋ฒˆ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค).
๊ทธ๋Ÿฌ๋‚˜์ด ๋งค๊ฐœ ๋ณ€์ˆ˜์˜ ๊ธฐ๋ณธ๊ฐ’์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์–ด๋–ค ๊ฐ’์„ ์„ ํƒํ•˜๋“  (1, 2, 4, 8) ์ž‘๋™ํ•˜์ง€๋งŒ ์ „ํ˜€ ์ž…๋ ฅํ•˜์ง€ ์•Š์œผ๋ฉด ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ๊ฐ’์€ 15์ž…๋‹ˆ๋‹ค. https://gitlab.com/linagora/petals-cockpit.git#075bac4c54fee466568c000c7ffe8025f593e212 ์˜ ๊นจ๋—ํ•œ ์ฒดํฌ ์•„์›ƒ์œผ๋กœ ๋™์‹œ์„ฑ 15 ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ข‹์€ ์†Œ์‹์ž…๋‹ˆ๋‹ค! ์†”๋ฃจ์…˜ ๋ฐ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ํ–ฅํ•œ ํ•œ ๊ฑธ์Œ ๋” ๋‚˜์•„๊ฐ€ :)

์ผ๋ถ€ ๊ฒฐ๊ณผ.

TL; DR ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์ œ๋Œ€๋กœ ๊ณ ์น˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์•„์ด๋””์–ด๊ฐ€ ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ข€ ๋” ๊นŠ์€ Node.js ์ง€์‹์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

  1. ๊ฐ€๋Šฅํ•œ ๋ฌธ์ œ์—์„œ ๋„คํŠธ์›Œํฌ๋ฅผ ์ œ๊ฑฐ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    yarn.lock์˜ .tgz ํŒŒ์ผ์— ๋Œ€ํ•œ ์˜คํ”„๋ผ์ธ ๋ฏธ๋Ÿฌ๋ฅผ ์„ค์ •ํ–ˆ์œผ๋ฉฐ ๋””์Šคํฌ์—์„œ ์„ค์น˜๋œ ํŒจํ‚ค์ง€๋กœ ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ๋Š” tarball-fetcher ์ฝ”๋“œ์˜ ์••์ถ• ํ•ด์ œ / ํ’€๊ธฐ ์ŠคํŠธ๋ฆผ์— ์žˆ์Šต๋‹ˆ๋‹ค.

  1. tar- https: //github.com/mafintosh/tar-fs ๋Œ€ ํ˜„์žฌ https://github.com/npm/node-tar/ ๋ฅผ ์ถ”์ถœํ•˜๋Š” ๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค
    ์กฐ๊ธˆ ๋” ์ž์„ธํžˆ-์—ฌ๋Ÿฌ mkdirp ์ž‘์—…์„ ์ˆ˜ํ–‰ ํ•  ๋•Œ ๋…ธ๋“œ์—์„œ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
Error: ENOENT: no such file or directory, chmod '/Users/bestander/Library/Caches/Yarn/npm-@angular/core-4.0.0-rc.1-7f87b7696b407476e45d6d3c1880a50d5afbb6e3/typings/src/di/injector.d.ts'
  errno: -2,
  code: 'ENOENT',
  syscall: 'chmod',
  path: '/Users/bestander/Library/Caches/Yarn/npm-@angular/core-4.0.0-rc.1-7f87b7696b407476e45d6d3c1880a50d5afbb6e3/typings/src/di/injector.d.ts' }

core-4.0.0 ๋ฐ typescript-2.2.1์€ ํŒŒ์ผ ์ˆ˜๊ฐ€ ๋งŽ๊ณ  ํด๋” ๊ตฌ์กฐ๊ฐ€ ๊นŠ๊ธฐ ๋•Œ๋ฌธ์— ์‹คํŒจํ•˜๊ณ  ๋งŽ์€ ๋™์‹œ mkdir / copy ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ฉด์„œ ์„ค์น˜์— ์‹คํŒจํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์‹คํŒจํ•˜๋Š” ๋‹ค๋ฅธ syscall์ด์žˆ์„ ๋•Œ๋งˆ๋‹ค : chmod, rmdir, mkdir, lstat, utime.

๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์€ ๋„์„œ๊ด€์˜ ์ฝ”๋“œ์—์„œ ๋ช…๋ฐฑํ•œ ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค.

  1. ๋…ธ๋“œ 4, 6 ๋ฐ 7์—์„œ ๋™์ผํ•˜๊ฒŒ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

  2. ๋™์‹œ์„ฑ์„ 8๋กœ ์„ค์ • ํ•œ ์ƒํƒœ์—์„œ ์˜ค๋ฅ˜๋ฅผ ์žฌํ˜„ ํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ๊ธฐ๋ณธ ๋„คํŠธ์›Œํฌ ๋™์‹œ์„ฑ์„ ์ค„์ด๊ธฐ ์œ„ํ•ด PR์„ ๋ณด๋‚ด๊ฒ ์Šต๋‹ˆ๋‹ค.


  1. ๋™์‹œ์„ฑ์ด ์„ค์น˜ ์†๋„์— ์–ด๋–ค ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

5.1. ๋‚ด MBPro 13 "์—์„œ ์˜คํ”„๋ผ์ธ ๋ฏธ๋Ÿฌ (๋‹ค์šด๋กœ๋“œ ์—†์Œ)๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์บ์‹œ๋ฅผ ์ •๋ฆฌํ•˜๊ณ  node-tar ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ์ผ ์••์ถ•์„ ํ’‰๋‹ˆ ๋‹ค.
๋™์‹œ์„ฑ 12-์‹คํŒจ
๋™์‹œ์„ฑ 8-18 ์ดˆ
๋™์‹œ์„ฑ 4-18 ์ดˆ
๋™์‹œ์„ฑ 2-21 ์ดˆ

5.2. ๋‚ด MBPro 13 "์—์„œ ์˜คํ”„๋ผ์ธ ๋ฏธ๋Ÿฌ (๋‹ค์šด๋กœ๋“œ ์—†์Œ)๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์บ์‹œ๋ฅผ ์ •๋ฆฌํ•˜๊ณ  tar-fs ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ์ผ ์••์ถ•์„ ํ’‰๋‹ˆ ๋‹ค.
๋™์‹œ์„ฑ 12-15 ์ดˆ
๋™์‹œ์„ฑ 8-15 ์ดˆ
๋™์‹œ์„ฑ 4-17 ์ดˆ
๋™์‹œ์„ฑ 2-18 ์ดˆ

5.3. ์ธํ„ฐ๋„ท, MBPro 13 "์—์„œ ํŒจํ‚ค์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ์บ์‹œ๋ฅผ ์ •๋ฆฌํ•˜๊ณ  tar-fs ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ์ผ ์••์ถ•์„ ํ’‰๋‹ˆ ๋‹ค.
๋™์‹œ์„ฑ 12-ํ•œ ๋ฒˆ ์‹คํŒจ
๋™์‹œ์„ฑ 8 ~ 21 ์ดˆ
๋™์‹œ์„ฑ 4-23 ์ดˆ
๋™์‹œ์„ฑ 2-34 ์ดˆ

๋™์‹œ์„ฑ์„ 8๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ์ถฉ๋ถ„ํžˆ ์•ˆ์ „ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋ฉฐ tar ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ „ํ™˜ํ•˜๋Š” ๊ฒƒ๋„ ์˜๋ฏธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
PR๋กœ ํ›„์† ์กฐ์น˜ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ์ ์ ˆํ•œ ๋ฐฉ๋ฒ•์€ https://github.com/mafintosh/tar-fs๋ฅผ ๋ถ„๊ธฐํ•˜๊ณ  ๋” ์Šค๋งˆํŠธ ํ•œ fs ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค (์˜ˆ : ๋ชจ๋“  ํด๋”์— ๋Œ€ํ•ด mkdir์„ ํ•œ ๋ฒˆ๋งŒ ์‚ฌ์šฉ).

tar-fs ๊ด€๋ฆฌ์ž๊ฐ€ ํ™œ๋™์ค‘์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๋ฅผ ์—ด์–ด์„œ ๊ทธ๋“ค์ด ์•Œ๊ณ  / ์ œ์•ˆํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์„๊นŒ์š”?

@victornoel , ์ œ๋ฐœ ๊ทธ๋ ‡๊ฒŒ ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

@bestander ์™„๋ฃŒ! mafintosh / tar-fs # 61 :)

๋‚ด ์  ํ‚จ์Šค์˜ ๋นŒ๋“œ ์—์ด์ „ํŠธ์—์„œ yarn ๋ฅผ ํ…Œ์ŠคํŠธ ํ•  ๋•Œ ๋‹ค์†Œ ์œ ์‚ฌํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ์ด ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฒ„๊ทธ๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์กฐ๊ฑด์ด ๋ฌด์—‡์ธ์ง€ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ์†๋„๋ฅผ ์œ„ํ•ด ๋นŒ๋“œ ์‹œ์Šคํ…œ์˜ npm ํ˜ธ์ถœ์„ yarn ๋กœ ๋ฐ”๊พธ๊ณ  ์‹ถ์ง€๋งŒ ๋™์‹œ์„ฑ์„ ๋น„ํ™œ์„ฑํ™”ํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ ๋ณด๋„ˆ์Šค๊ฐ€ ๋ฌดํšจํ™” ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@ProdigySim ์€ # 2829 (์–€ ๋งˆ์Šคํ„ฐ์— ๋ณ‘ํ•ฉ ๋จ)์—์„œ ์„ค๋ช…ํ–ˆ๋“ฏ์ด ๋„คํŠธ์›Œํฌ ๋™์‹œ์„ฑ์„ ์ค„์ด๋ฉด ์–€์˜ ์„ฑ๋Šฅ์— ํฐ ์˜ํ–ฅ์„์ฃผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฐ„๋‹จํžˆ 8๋กœ ์„ค์ •ํ•˜๋ฉด ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. ์–ด์จŒ๋“  ํ•œ ๋ฒˆ์— 8 ๊ฐœ์˜ ์ข…์†์„ฑ์„ ๋‹ค์šด๋กœ๋“œ ํ•  ๋•Œ๋„ ๋Œ€๋ถ€๋ถ„์˜ ๋“œ๋ผ์ด๋ธŒ๊ฐ€ ์ฒ˜๋ฆฌ๋Ÿ‰์„ ๋”ฐ๋ฅผ ๊ฒƒ์ธ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ํ™•์‹คํžˆ ๋งŽ์ด ๋Š์Šจํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. :)

@victornoel ์ •๋ณด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ํ•„์ž์˜ ๊ฒฝ์šฐ --network-concurrency ์ค„์ด๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋Š” ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ์‹ค์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๋ณ‘๋ ฌ๋กœ ์‹คํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

--network-concurrency 1 ์œผ๋กœ๋„์ด ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋ณ„๋„์˜ ๋ฌธ์ œ๋ฅผ ์—ด์–ด์•ผํ• ๊นŒ์š”?

์œ„์—์„œ ์ œ๊ณต ํ•œ ๊ฒƒ๊ณผ ๋™์ผํ•œ ํ…Œ์ŠคํŠธ ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

#!/bin/bash
set -x # echo commands

# Clear yarn cache
rm -rf $(yarn cache dir)

# Clone the repo into two separate spots
git clone https://gitlab.com/linagora/petals-cockpit.git repo1
git clone https://gitlab.com/linagora/petals-cockpit.git repo2

# Run yarn on both in parallel
cd repo1/frontend && yarn --network-concurrency 1 &
cd repo2/frontend && yarn --network-concurrency 1 &

๋งค๋ฒˆ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค (์ง€๊ธˆ๊นŒ์ง€ 4 ๊ฐœ์— ๋Œ€ํ•ด 4 ๊ฐœ)

error An unexpected error occurred: "https://registry.yarnpkg.com/@angular/core/-/core-4.0.0-rc.2.tgz: 
ENOENT: no such file or directory, lstat '/Users/<snip>/Library/Caches/Yarn/npm-@angular/core-4.0.0-rc.2-59535050e5d0e6141417186eee571296f8e9c3d0/@angular/core.es5.js'".

์›์‚ฌ 0.21.3, ๋…ธ๋“œ v4.5.0, OSX 10.11.6

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

๋ฟก๋ฟก
์ด๊ฒƒ์€ Yarn์˜ ๊ธ€๋กœ๋ฒŒ ๋‹ค์šด๋กœ๋“œ ์บ์‹œ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•˜๋Š” ๋ณ„๋„์˜ ๊ด€๋ จ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๊ฐ ๋””๋ ‰ํ† ๋ฆฌ์— ๋Œ€ํ•ด ๋‹ค๋ฅธ ์บ์‹œ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

--network-concurrency 8 ๊ณ„์† ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (์‹ค์ œ๋กœ ๋ฌด์ œํ•œ ๋„คํŠธ์›Œํฌ ๋™์‹œ์„ฑ์— ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.)

์—ฌ๊ธฐ์— ๋” ๋งŽ์€ ์ปจํ…์ŠคํŠธ๊ฐ€

@bestander๋Š” ๋†€๋ž๊ฒŒ๋„ ์˜ค๋Š˜, ๋„คํŠธ์›Œํฌ ๋™์‹œ์„ฑ์ด 8 ์ผ ๋•Œ์—๋„ ๋ฌธ์ œ๊ฐ€ ๋‹ค์‹œ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค (๊ฐ๊ฐ์˜ ์ƒˆ ๋ฒ„์ „์— ๋Œ€ํ•ด tar๋กœ ํŠธ๋ฆฌ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค ^^).ํ•˜์ง€๋งŒ ๋‚ด CI์—์„œ๋งŒ ... 2๋กœ ์˜ฎ๊ฒผ์Šต๋‹ˆ๋‹ค. ์ข…์†์„ฑ์„ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๋ฐ ๋ช‡ ์ดˆ๊ฐ€ ๋” ๊ฑธ๋ฆฌ๋Š”์ง€ ์ •๋ง ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š์œผ๋ฏ€๋กœ ์ง€๊ธˆ์€ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค).
tar-fs ํ”„๋กœ์ ํŠธ์—์„œ ํ”ผ๋“œ๋ฐฑ์„๋ฐ›์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ˆ„๊ตฌ์—๊ฒŒ ๋„์›€์„ ์š”์ฒญํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

OS X ์šฉ Travis ๋นŒ๋“œ์—์„œ๋„์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์บ์‹œ๋ฅผ ์ง€์šฐ๊ณ  ๋„คํŠธ์›Œํฌ ๋™์‹œ์„ฑ์„ ์„ค์ •ํ–ˆ์ง€๋งŒ ๋„์›€์ด๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

@kevingelion ๋„คํŠธ์›Œํฌ ๋™์‹œ์„ฑ์„ ์–ด๋–ค ๊ฐ’์œผ๋กœ ์„ค์ • ํ–ˆ์Šต๋‹ˆ๊นŒ? ๊ณผ๊ฐํ•˜๊ณ  2์™€ ๊ฐ™์ด ์„ค์ •ํ•˜์—ฌ ๋ฌธ์ œ๊ฐ€ ์ด๊ฒƒ์ธ์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค :)

@victornoel ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ 1๊ณผ 2๋กœ ์„ค์ •ํ–ˆ๊ณ  ๋‘ ์˜ต์…˜ ๋ชจ๋‘ ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” yarn --mutex network ํ–ˆ๊ณ  ์ฃผ์‚ฌ์œ„๋„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

@bestander ๋‹ค์Œ ํ•ดํ‚น ์ˆ˜์ • (ํŽธ์ง‘ : NOT) ๋ฌธ์ œ :

diff --git a/src/util/request-manager.js b/src/util/request-manager.js
index e0e134a2..995dac69 100644
--- a/src/util/request-manager.js
+++ b/src/util/request-manager.js
@@ -214,8 +214,7 @@ export default class RequestManager {
     }, params.headers);

     const promise = new Promise((resolve, reject) => {
-      this.queue.push({params, resolve, reject});
-      this.shiftQueue();
+      this.execute({params, resolve, reject});
     });

     // we can't cache a request with a processor

๋ถ„๋ช…ํžˆ ๊ทธ๊ฒƒ์€ ์ˆ˜์ •์ด ์•„๋‹ˆ๋ฉฐ ์š”์ฒญ ๊ด€๋ฆฌ์ž์™€ ๋Œ€๊ธฐ์—ด ์‹œ์Šคํ…œ์„ ์™„์ „ํžˆ ์šฐํšŒํ•˜์ง€๋งŒ ๋ฌธ์ œ๊ฐ€์ด ํ•˜์œ„ ์‹œ์Šคํ…œ์—์„œ ๋ฐœ์ƒํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

๊ณ ๋งˆ์›Œ, ๋น…ํ„ฐ!

2017 ๋…„ 3 ์›” 24 ์ผ 18:07์— Victor Noรซl [email protected] ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

@bestander https://github.com/bestander ๋‹ค์Œ ํ•ดํ‚น ์ˆ˜์ • ์‚ฌํ•ญ
๋ฌธ์ œ:

diff --git a / src / util / request-manager.js b / src / util / request-manager.js
์ƒ‰์ธ e0e134a2..995dac69 100644
--- a / src / util / request-manager.js
+++ b / src / util / request-manager.js
@@ -214,8 +214,7 @@ ๋‚ด๋ณด๋‚ด๊ธฐ ๊ธฐ๋ณธ ํด๋ž˜์Šค RequestManager {
}, params.headers);

 const promise = new Promise((resolve, reject) => {

  • this.queue.push ({params, resolve, reject});
  • this.shiftQueue ();
  • this.execute ({params, resolve, reject});
    });
 // we can't cache a request with a processor

๋ถ„๋ช…ํžˆ ์ˆ˜์ •์ด ์•„๋‹ˆ๋ฉฐ ์š”์ฒญ ๊ด€๋ฆฌ์ž๋ฅผ ์™„์ „ํžˆ ์šฐํšŒํ•˜๊ณ 
ํ์ž‰ ์‹œ์Šคํ…œ์ด์ง€๋งŒ ๋ฌธ์ œ๊ฐ€
ํ•˜์œ„ ์‹œ์Šคํ…œ.

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

์•ˆ๋ผ, ์•ˆ๋ผ : Dํ•˜์ง€๋งŒ ์กฐ๊ธˆ ๊ฐœ์„ ํ•ด

๊ฑฐ์ง“ ์–‘์„ฑ์— ๋Œ€ํ•ด ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ๋ฅผ๋ณด๊ณ ํ•˜๊ธฐ์—๋Š” ๋„ˆ๋ฌด ์—ด์‹ฌ์ด์—ˆ์Šต๋‹ˆ๋‹ค. :)

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

๊ธ€์Ž„, ์ง€๊ธˆ์€ ๋•Œ๋กœ๋Š” ์ž‘๋™ํ•˜๊ณ  ๋•Œ๋กœ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์Šต๋‹ˆ๋‹ค (ํ•ต์œผ๋กœ ์ธํ•ด ์ „์ฒด ๋ฏธ์Šค๊ฐ€ ์•„๋‹ˆ๊ฑฐ๋‚˜ ์ธํ„ฐ๋„ท ์—ฐ๊ฒฐ์ด ๋„ˆ๋ฌด ๋Š๋ฆฝ๋‹ˆ๋‹ค ...)

CI ๋นŒ๋“œ์—์„œ๋„์ด ๋ฌธ์ œ๋ฅผ ๊ฒช๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŽ์€ ํ…Œ์ŠคํŠธ ๋์— ๋งˆ์นจ๋‚ด ๋กœ์ปฌ์—์„œ๋„ ์žฌํ˜„ ํ•  ์ˆ˜์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ, ๋•Œ๋•Œ๋กœ ์ž‘๋™ํ•˜์ง€๋งŒ ๋‹ค์Œ ์˜ค๋ฅ˜ ์ค‘ ํ•˜๋‚˜์™€ ํ•จ๊ป˜ ์ž์ฃผ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค (์–ด๋”˜๊ฐ€์— ์ผ์ข…์˜ ๊ฒฝ์Ÿ ์กฐ๊ฑด์ด์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค).

  • ENOENT: no such file or directory, lstat 'cache/directory/some-file'
  • EEXIST: file already exists, mkdir 'package-name'

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

์ด๊ฒƒ์ด ์ „ํ˜€ ๋„์›€์ด๋˜๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค ... ์ œ๊ฐ€ ํ•  ์ˆ˜์žˆ๋Š” ๋ชจ๋“  ๋ฐฉ๋ฒ•์œผ๋กœ ๋„์›€์„ ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

ํŽธ์ง‘ : ์ด๊ฒƒ์ด ๋„์›€์ด๋˜๋Š”์ง€ ์—ฌ๋ถ€๋Š” ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ ์ตœ์ƒ์œ„ ํŒจํ‚ค์ง€๊ฐ€ "git+ssh://[email protected]/org/package.git#v1.0.0" ํ˜•์‹์œผ๋กœ ๋‚˜์—ด๋˜๊ณ  ์˜ค๋ฅ˜์—์„œ ๋‹ค์šด๋กœ๋“œ์ค‘์ธ ํ•˜์œ„ ์ข…์†์„ฑ์ด https ์ด์ƒ ๋‹ค์šด๋กœ๋“œ๋˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. URL์ด "https://codeload.github.com/org/package/tar.gz/ljasdf08i234098aifj" ์ž…๋‹ˆ๋‹ค.

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

์ฐพ์•˜์–ด์š”,๋„

https://github.com/yarnpkg/yarn/issues/2629#issuecomment -282745896์˜ ์˜ˆ์—์„œ Yarn์—๋Š” ๋ณ‘๋ ฌ๋กœ ๋‹ค์šด๋กœ๋“œ ๋ฐ ์ถ”์ถœ๋˜๋Š” ์ค‘๋ณต ํŒจํ‚ค์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
์ค‘๋ณต ๋œ ํ•ญ๋ชฉ์€ @angular/core/-/core-4.0.0-rc.1 ๋ฐ typescript/-/typescript-2.2.1.tgz ์ž…๋‹ˆ๋‹ค.

๋†’์€ ๋™์‹œ์„ฑ์„ ํ†ตํ•ด ๋™์ผํ•œ ์บ์‹œ ํด๋”๋กœ ๋™์‹œ ์ถ”์ถœ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
Yarn์ด์ด ๋‘ ํŒจํ‚ค์ง€๋ฅผ ์ค‘๋ณต ์ œ๊ฑฐํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋ฅผ ์กฐ์‚ฌํ•˜๊ณ  ์ˆ˜์ • ์‚ฌํ•ญ์„ ๋ณด๋‚ด๊ฒ ์Šต๋‹ˆ๋‹ค.

OS ๋˜๋Š” tar ์ถ”์ถœ ์ˆ˜์ค€์—๋Š” ๋งˆ๋ฒ•์ด ์—†์Šต๋‹ˆ๋‹ค.

ํ•˜ํ•˜, ์ข‹์€ ์ง์—… @bestander , ์šฐ๋ฆฌ๊ฐ€ ๋งˆ์นจ๋‚ด ๋ฌธ์ œ๋ฅผ ๋ฐœ๊ฒฌํ•˜๊ฒŒ๋˜์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค!

@bestander ๊ต‰์žฅํ•œ ์ผ : https://github.com/yarnpkg/yarn/pull/3090 ๋ฐ https://github.com/yarnpkg/yarn/pull/3106 ์„ ๋ชจ๋‘ ์‹คํ–‰ํ•˜์—ฌ Yarn ์‚ฌ์šฉ์„ ์ฐจ๋‹จํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌ!

prop-types ๋ชจ๋“ˆ์„ ์„ค์น˜ํ•˜๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์„ค์น˜ํ•˜๋ ค๊ณ  ํ•  ๋•Œ๋งˆ๋‹ค ๋‹ค๋ฅธ ํŒŒ์ผ ์ด๋ฆ„์— ENOENT๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋ฅผ ์œ„ํ•ด npm 5.0.2๋ฅผ ์„ค์น˜ ํ•œ ํ›„ ๋ฌธ์ œ๊ฐ€ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค.

$ yarn add prop-types
yarn add v0.21.3
[1/4] Resolving packages...
[2/4] Fetching packages...
error An unexpected error occurred: "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.10.tgz: ENOENT: no such file or directory
....

$ npm -g install npm

# whoops, looks like npm installed itself to different location than apt-get did
$ npm -v 
3.5.2

# remove the cached link from shell so the right version can surface
$ hash -d npm
$ npm -v
5.0.2

$ yarn add prop-types
... properly installs prop-types as expected

@skylize ์šฐ์—ฐ ์ผ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค. Yarn์€ npm ํด๋ผ์ด์–ธํŠธ๋ฅผ ์ „ํ˜€ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ npm ๋ฒ„์ „์€ Yarn ์‹คํ–‰์— ์ „ํ˜€ ์˜ํ–ฅ์„์ฃผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด๋กœ ์ธํ•ด Travis ๋นŒ๋“œ๊ฐ€ ๋ช‡ ๊ฐ€์ง€ ๋‹ค๋ฅธ ํŒจํ‚ค์ง€๋กœ ๊ฑฐ์˜ ๋งค๋ฒˆ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. ์•„์ง ํ•ด๊ฒฐ์ฑ…์ด ์žˆ์Šต๋‹ˆ๊นŒ?
error An unexpected error occurred: "https://registry.yarnpkg.com/apollo-client/-/apollo-client-1.8.0.tgz: ENOENT: no such file or directory, utime '/var/lib/jenkins/.cache/yarn/v1/npm-apollo-client-1.8.0-3b5d1976a06a0f82b2fc66fe71754868193dadb9/flow-typed/npm/webpack_vx.x.x.js'".

@Redmega
์—ฌ๊ธฐ์—์„œ๋„ ๋™์ผํ•˜์ง€๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

yarn install --network-concurrency 1

์–ด๋–ค ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ์ด๊ฒƒ์€ ์ด๋ฏธ ๊ณ ์ณ์งˆ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค ...

Le 8 aoรปt 2017 6:37 PM, "Ben Merckx" [email protected] a รฉcrit :

@Redmega https://github.com/redmega
์—ฌ๊ธฐ์—์„œ๋„ ๋™์ผํ•˜์ง€๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์›์‚ฌ ์„ค์น˜-๋„คํŠธ์›Œํฌ ๋™์‹œ์„ฑ 1

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

@victornoel ๋‚˜๋Š” ๋‚ด ๋กœ์ปฌ๊ณผ ๋™์ผํ•œ ์  ํ‚จ์Šค ๋จธ์‹ ์—์„œ v0.27.5 ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

nightlies๋ฅผ ์‹œ๋„ํ•˜์‹ญ์‹œ์˜ค : https://yarnpkg.com/en/docs/nightly

yarn.lock ํŒŒ์ผ๊ณผ yarn install ์ œ๊ฑฐํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด๋กœ ์ธํ•ด Jenkins ๋นŒ๋“œ๊ฐ€ ๊ฐ€๋” ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๋‘ ๋ฒˆ์งธ ์‹œ๋„ ํ›„์— ์ž‘๋™ํ•˜์ง€๋งŒ ๋‚˜์ค‘์— ๋‹ค์‹œ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

@ajcrites @Redmega @headione @benmerckx ์ด๋Ÿฐ ์ข…๋ฅ˜์˜ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๋‹ค๋ฅธ ๋ฌธ์ œ๋ฅผ ์—ด์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” ํ™•์‹คํžˆ ํ•ด๊ฒฐ๋˜์—ˆ์œผ๋ฏ€๋กœ ์œ ์‚ฌํ•œ ์ฆ์ƒ์ด ๋‚˜ํƒ€๋‚˜๋”๋ผ๋„ ๋ฌธ์ œ๋Š” ๋‹ค๋ฅธ ๋ฌธ์ œ ์—ฌ์•ผํ•ฉ๋‹ˆ๋‹ค.
๋‹ค๋ฅธ ๋ฌธ์ œ๋ฅผ ์—ด๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ ๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋” ๋งŽ๋‹ค๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค. :)

Node 8.5๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Jenkins์—์„œ ํŒจํ‚ค์ง€์˜ ๋ณ‘๋ ฌ ๋นŒ๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ํ˜„์žฌ ๋‹ค๋ฅธ ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•˜๋Š” 1.0.2๊ฐ€ ์ถœ์‹œ ๋  ๋•Œ๊นŒ์ง€ 0.27.5๋ฅผ ๊ณ ์ˆ˜ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์–ด์จŒ๋“  ๋‹น์‹ ์˜ ์ง€์›๊ณผ ์ผ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค :)

@floric ๋…ธ๋“œ 8.9.4์™€ ๋™์ผํ•œ ์ปจํ…์ŠคํŠธ (Jenkins + Parallel)์—์„œ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ ๋˜์—ˆ์Šต๋‹ˆ๊นŒ?

ํŽธ์ง‘ : 8.11.1์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฒ„๊ทธ๊ฐ€์—†๋Š” ์ตœ์‹  ๋ฒ„์ „์˜ ์›์‚ฌ๋ฅผ ํฌํ•จํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

@Niceplace ๋‹น์‹ ์€ --mutex ์˜ต์…˜์„ ์‹œ๋„ํ•˜๊ณ  ์‹ถ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค : https://yarnpkg.com/en/docs/cli#toc -concurrency-and-mutex

์กฐ๋งŒ๊ฐ„์ด๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ๋” ๋‚˜์€ ํŒจํ‚ค์ง€ ๋ณ„ ์ž ๊ธˆ์„ ์ถ”๊ฐ€ ํ•  ๊ณ„ํš์ด ์žˆ์Šต๋‹ˆ๋‹ค.

Yarn ์ž‘์—… ์˜์—ญ์ด ํ™œ์„ฑํ™” ๋œ ์ƒํƒœ์—์„œ monorepo์˜ ๋ฃจํŠธ์—์„œ yarn --mutex=network ๋ฅผ ์‹คํ–‰ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜๋Š” ENOENT: no such file or directory, chmod ๋ฐ ENOENT: no such file or directory, lstat ๊ฐ„ํ—์  ์ธ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ผ๊ด€์„ฑ์ด์—†๋Š” ๊ฒƒ ๊ฐ™๊ณ  ๋ฌด์ž‘์œ„๋กœ ๋‘˜ ์ค‘ ํ•˜๋‚˜๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค. (1.6.0 ๋ฐ ๋…ธ๋“œ 8.11.1 ๋ฐ 9.11.1)

ํŠนํžˆ ์˜ค๋ฅ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

error An unexpected error occurred: "ENOENT: no such file or directory, lstat '/Users/federicozivolo/test/packages/foobar/node_modules/detect-port-alt'".

๊ณผ

error An unexpected error occurred: "ENOENT: no such file or directory, chmod '/Users/federicozivolo/test/packages/foobar/node_modules/jest/node_modules/.bin/jest'".

Yarn 1.7.0์„ ์‹คํ–‰ ์ค‘์ด๋ฉฐ ๋น„์Šทํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. Yarn์€ ์—ฌ๋Ÿฌ ๋ฒˆ ์‹คํ–‰ ํ•œ ํ›„ ๋งˆ์นจ๋‚ด ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

An unexpected error occurred: "ENOENT: no such file or directory, lstat '/home/nieltg/.cache/yarn/v1/npm-npm-registry-client-8.5.1-8115809c0a4b40938b8a109b8ea74d26c6f5d7f1/lib/dist-tags/fetch.js'".

ํŽธ์ง‘ํ•˜๋‹ค:
yarn --network-concurrency 1 ํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์˜ค๋ฅ˜ ๋ฐ yarn-error.log ํŒŒ์ผ์˜ ๋˜ ๋‹ค๋ฅธ ์ƒ˜ํ”Œ์ž…๋‹ˆ๋‹ค.

An unexpected error occurred: "ENOENT: no such file or directory, copyfile '/home/nieltg/.cache/yarn/v1/npm-core-js-2.5.7-f972608ff0cead68b841a16a932d0b183791814e/library/fn/date/now.js' -> '/mnt/c/Users/nieltg/Projects/React/React-16-Demo/node_modules/core-js/library/fn/date/now.js'".

Yarn 1.7.0์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‚˜๋Š” ์—ฌ์ „ํžˆ ๋‚˜์—๊ฒŒ ์ผ์–ด๋‚˜๋Š” ๋™์ผํ•œ ํ–‰๋™์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

๋งˆ์ง€๋ง‰์œผ๋กœ๋ฐ›์€ ๊ฒƒ์€ :

error An unexpected error occurred: "ENOENT: no such file or directory, lstat '/root/.yarn-cache/v1/npm-@storybook/addon-actions-3.4.5-ba0d0c0c74357c0852e0b890b40

Linux ์šฉ Windows ํ•˜์œ„ ์‹œ์Šคํ…œ์˜ Yarn 1.9.2์—์„œ์ด ์˜ค๋ฅ˜๊ฐ€ ์ž์ฃผ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์˜ค๋Š˜ ์šฐ๋ฆฌ๋Š” ํŒŒ์ดํ”„ ๋ผ์ธ์ด yarn install ์„ ๋ณ‘๋ ฌ๋กœ ์‹คํ–‰ํ•˜๋Š” Jenkins CI์˜ ์†์ƒ๋œ ํŒจํ‚ค์ง€์™€ ์œ ์‚ฌํ•œ ๋ฌธ์ œ๋ฅผ ๊ฒช์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฉฐ์น  ์ „์—๋Š” ์ž˜ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.
yarn install --network-concurrency 1 ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค ( ์ฃผ์„์— ์–ธ๊ธ‰ ๋จ ). ์„ฑ๋Šฅ์€ ํฌ๊ฒŒ ์ €ํ•˜๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค : ~ 7 ์ดˆ-> ~ 8 ์ดˆ.

์™œ ์ด๊ฒƒ์ด ๋‹ซํ˜”์Šต๋‹ˆ๊นŒ? ์—ฌ์ „ํžˆ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

Toms-MacBook-Pro-2:design-to-code tommedema$ yarn install
yarn install v1.9.4
[1/4] ๐Ÿ”  Resolving packages...
[2/4] ๐Ÿšš  Fetching packages...
[3/4] ๐Ÿ”—  Linking dependencies...
error An unexpected error occurred: "ENOENT: no such file or directory, lstat '/Users/tommedema/projects/vg/design-to-code/packages/vgcli/node_modules/fs-extra'".
info If you think this is a bug, please open a bug report with the information provided in "/Users/tommedema/projects/vg/design-to-code/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
Toms-MacBook-Pro-2:design-to-code tommedema$ yarn install --network-concurrency 1
yarn install v1.9.4
[1/4] ๐Ÿ”  Resolving packages...
[2/4] ๐Ÿšš  Fetching packages...
[3/4] ๐Ÿ”—  Linking dependencies...
[4/4] ๐Ÿ“ƒ  Building fresh packages...
โœจ  Done in 24.85s.

์ œ ๊ฒฝ์šฐ์—๋Š” ๋‘ ๊ฐœ์˜ ํŒจํ‚ค์ง€์—์„œ yarn remove fs-extra ๋ฐ yarn add fs-extra ๋ฅผ ์ˆ˜ํ–‰ ํ•œ ํ›„์ด ์ข…์†์„ฑ์„ ํšจ๊ณผ์ ์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•œ ํ›„ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”, ๋ญ”๊ฐ€ ์ฐพ์€ ๊ฒƒ ๊ฐ™์•„์š”.

fs ๋ฐ rxjs ์‚ฌ์šฉํ•˜์—ฌ ์ง€์ •๋œ ๋””๋ ‰ํ† ๋ฆฌ์—์žˆ๋Š” ํŒŒ์ผ์„ ์žฌ๊ท€ ์ ์œผ๋กœ ๋‚˜์—ดํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ๊ณ  lstat ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š์œผ๋ฉด ์‹คํŒจ ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Œ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ lstat ๋ฅผ ํ˜ธ์ถœํ•˜๊ธฐ ์ „์— lstat ํ˜ธ์ถœ์„ ์™„๋ฃŒํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

ํ™˜๊ฒฝ์ด ์˜ํ–ฅ์„ ๋ฐ›๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ„๋‹จํ•œ NPM ํŒจํ‚ค์ง€ async-dirtree-test๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค . ์ €๋Š” WSL์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ๋™์‹œ์„ฑ์ด ๋‚ฎ์€ ๊ฒฝ์šฐ์—๋„ node_modules ์™€ ๊ฐ™์€ ํ•˜์œ„ ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ๋งŽ์€ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋™์•ˆ ์‹คํŒจ ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Œ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ธ€์Ž„, ๋‚˜๋Š”์ด ๋ฌธ์ œ๊ฐ€ WSL์— ํŠน์ •ํ•œ ๊ฒƒ์ธ์ง€ ์—ฌ๋ถ€๋ฅผ ์—ฌ์ „ํžˆ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ์€ Linux, Mac ๋“ฑ๊ณผ ๊ฐ™์€ ๋‹ค๋ฅธ ํ™˜๊ฒฝ์—์„œ ํ…Œ์ŠคํŠธ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

@nieltg ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์„ ํ˜•์„ฑํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜์žˆ๋Š” ๊ด€์ฐฐ์„ ๊ณต์œ ํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” WSL์—์„œ Docker CE๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  Windows ์šฉ Docker๋ฅผ ํ˜ธ์ŠคํŠธ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ WSL์—์„œ Docker๋กœ ์ž‘์—… ํ•  ๋•Œ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋Š๊ปด์ง€์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” ํ˜ธ์ŠคํŠธ๊ฐ€ Windows ์„ธ๊ณ„์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ž‘๋™ํ•˜๋ฏ€๋กœ ์‹ค์ œ๋กœ ๋‚ด Dockerfile์€ / c / foobar๋ฅผ c : / foobar (Docker ์—”์ง„์˜ ๊ฒฝ์šฐ)). ์ด๊ฒƒ์€ ๋ฐ”์ธ๋”ฉ์„ ์‚ฌ์šฉํ•  ๋•Œ ๋งค์šฐ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค (์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์—์„œ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์˜ / usr / src๊ฐ€ ๊ถ๊ทน์ ์œผ๋กœ c : / src / foobar์— ์žˆ๋„๋ก ๋กœ์ปฌ ํด๋”๋ฅผ ๋งˆ์šดํŠธํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค (๋‚ด Dockerfile์€ ๋ฐ”์ธ๋”ฉ์„ / c /๋กœ ํ‘œ์‹œํ•˜์ง€๋งŒ). src / foobar : / usr / src (๊ฒฝ๋กœ์—์„œ ์ž๋™ ๋ฒˆ์—ญ์„ ๋ณด์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?)

์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์˜ ๋กœ์ปฌ ํด๋” ์ค‘ ํ•˜๋‚˜์— yarn install WSL์—์„œ ์ง์ ‘ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์—์ด ๊ตฌ๋ถ„์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค (Docker ๊ด€๋ จ ์—†์Œ).

๋ฐ˜๋ฉด์— .... ๋‚ด๊ฐ€ mkdir /tmp/src && cp ./package.json /tmp/src/ && cd /tmp/src && yarn install ์ด๋ฉด ๋ชจ๋“  ๊ฒƒ์ด ์™„๋ฒฝํ•˜๊ฒŒ ์„ฑ๊ณตํ•˜๊ณ  mv /tmp/src/node_modules /c/src/foobar/ ์žˆ๊ณ  ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ด๊ฒƒ์ด ํ˜„์žฌ์˜ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. /tmp ๋Š” ๋„์ปค ์ €์žฅ์†Œ๋กœ ์กด์žฌํ•œ๋‹ค๋Š” ์ ์— ์œ ์˜ํ•˜์‹ญ์‹œ์˜ค (์‹ค์ œ๋กœ ํŒŒ์ผ์˜ ํŒŒํ‹ฐ์…˜์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  IO๊ฐ€ OS์— ๋‹จ์ผ ํŒŒ์ผ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค).

์—ฌ๊ธฐ์—์„œ ๋„์ปค๋ฅผ ํฌํ•จํ•˜๋Š” ๊ฒƒ์ด ์ด์ƒ์ ์ด์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ IO ์ž์ฒด๊ฐ€ ์•„๋‹ˆ๊ณ  ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋น ๋ฅธ ํŒŒ์ผ ์ฒ˜๋ฆฌ๊ฐ€ ๋ฌธ์ œ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Œ์„ ์‹œ์‚ฌํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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

๋‹ค์‹œ ์—ด๋‹ค

์ตœ๊ทผ์— Azure Devops (์ด์ „ Visual Studio Team Services)์—์„œ CI ๋นŒ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด์„œ yarn 1.10.1์„ ์‚ฌ์šฉํ•˜์—ฌ ๋™์ผํ•œ ์ข…๋ฅ˜์˜ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

์‹คํŒจํ•œ ์‹ค์ œ ์ข…์†์„ฑ์€ ๋‚ด๊ฐ€ ์•Œ ์ˆ˜์žˆ๋Š” ์ตœ์„ ์˜ ๋ฌด์ž‘์œ„ ์ธ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ yarn install ๋Š” ENOENT: no such file or directory, open '/usr/local/share/.cache/yarn........ ์˜ค๋ฅ˜๋กœ ์ธํ•ด ๊ฐ„ํ—์ ์œผ๋กœ ๋–จ์–ด์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ•œ ๋ฒˆ ๋นŒ๋“œ๊ฐ€ ์ž‘๋™ํ•˜๊ณ  ๋‹ค์Œ ๋ฒˆ์—๋Š” ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

yarn install --network-concurrency 1 ์˜ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์šฐ๋ฆฌ์—๊ฒŒ ํšจ๊ณผ๊ฐ€์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

@ Marclev78 ๊ฐ™์€ ์˜ค๋ฅ˜์ด์ง€๋งŒ yarn install --network-concurrency 1 ๊ฐ€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

@ Marclev78 ์—ฌ๊ธฐ์—์„œ Azure Devops์—์„œ yarn 1.10.1์„ ์‚ฌ์šฉํ•˜๊ณ  ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

Error: https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz: ENOENT: no such file or directory, utime 'C:\Users\grpsshagent\AppData\Local\Yarn\Cache\v1\npm-core-js-1.2.7-652294c14651db28fa93bd2d5ff2983a4f08c636\fn\string\pad-left.js'

๋กœ์ปฌ์—์„œ ๋ชจ๋“  ๊ฒƒ์ด ์˜ˆ์ƒ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

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

error An unexpected error occurred: "ENOENT: no such file or directory, chmod '/usr/local/opt/asdf/installs/nodejs/8.12.0/.npm/bin/atob'".

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

์•ˆํƒ€๊น๊ฒŒ๋„์ด ๋ฌธ์ œ๋Š” ์ตœ๊ทผ CI ๋นŒ๋“œ๋ฅผ ๊ดด๋กญํžˆ๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. (

@rainabba ์ œ์•ˆ์ด WSL ์—์„œ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

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

๊ถ๊ทน์ ์œผ๋กœ ๋‹ค์Œ์„ ํ˜ธ์ถœํ•˜๋Š” fs.writeFile ()์— ๋ฌธ์ž์—ด (XML ํŒŒ์ผ ์ฝ˜ํ…์ธ )์„ ๋ณด๋‚ด๊ณ  ์žˆ์ง€๋งŒ ์ถ”๊ฐ€ ๋””๋ฒ„๊น…์œผ๋กœ ์‚ฌ์šฉ์ž ์ง€์ • ๋นŒ๋“œ๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋„์ „์„ ์ˆ˜ํ–‰ ํ•  ์ค€๋น„๊ฐ€๋˜์—ˆ๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด C ++ ํ”„๋กœ์ ํŠธ์˜ ์ถœ๋ ฅ์„ ํ†ตํ•ด ๋…ธ๋“œ ๋˜๋Š”์ด C ++ ๋ชจ๋“ˆ์— ๋”ฐ๋ผ ์˜ณ์€ ๋Š๋‚Œ์ด ์‹ค์ œ๋กœ ์–ด๋””์ธ์ง€ ์ •ํ™•ํžˆ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๋ก ์€ ์“ฐ๊ธฐ๊ฐ€ ์‹คํŒจํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ๋…ธ๋“œ๊ฐ€ ๋ฏฟ๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‚˜์—๊ฒŒ ์˜๋ฏธ๊ฐ€์žˆ๋Š” ์‹œ๋‚˜๋ฆฌ์˜ค๋Š” c + ํ”Œ๋Ÿฌ์Šค ๋ชจ๋“ˆ์ด ์„ฑ๊ณตํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‚ด๋ถ€์ ์œผ๋กœ ํŒŒ์ผ์„ ํ™•์ธํ•˜๊ณ  ์‹คํŒจํ•œ ๋‹ค์Œ ๋ณด๊ณ ์„œ๊ฐ€ ๋…ธ๋“œ๋กœ ๋Œ์•„๊ฐ€๋Š” ๋Š๋‚Œ์ด ๋“ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์‹ค์ œ ์“ฐ๊ธฐ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ํŒŒ์ผ์„ ํ™•์ธํ•˜๋ ค๊ณ  ํ•  ๋•Œ ๊ฑฐ๊ธฐ์— ์žˆ๊ณ  ์˜ค๋ฅ˜๊ฐ€ ์˜๋ฏธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

https://github.com/nodejs/node/blob/master/src/node_file.cc#L1795

@bestander ๋ฌธ์ œ๋ฅผ ๋‹ค์‹œ ์—ด ์ˆ˜์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋ถ„๋ช…ํžˆ ์ด๊ฒƒ์€ ๊ณ ์ •๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฉฐ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค.

์ด๋Š” yarn 1.12 ๋ฐ Azure Pipelines์—์„œ ์—ฌ์ „ํžˆ ๋ฐœ์ƒํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋‘ ํ™•์ธ ํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
ํ•ด๋‹น ์˜ค๋ฅ˜์— ๋Œ€ํ•œ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ด์œ ๊ฐ€์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๋ฌธ์ œ๋ฅผ ๋‹ค์‹œ ์—ด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜๋„ ๋””๋ฒ„๊น…์„์œ„ํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ ๋„์›€๋ง์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์›์‚ฌ 1.11์—์„œ๋„ ๋ฐœ์ƒํ•˜์ง€๋งŒ 1.10์—์„œ๋Š” ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@bestander- ๊ด€๋ จ? https://github.com/yarnpkg/yarn/issues/6312

๊ทธ๋ ‡๋‹ค๋ฉด ๊ฑฐ๊ธฐ์— ๋ช‡ ๊ฐ€์ง€ ํ›Œ๋ฅญํ•œ ์žฌํ˜„ ์ž‘์—…์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋„์ด ๋ฌธ์ œ์˜ ์˜ํ–ฅ์„๋ฐ›์Šต๋‹ˆ๋‹ค.

Windows 10 / WSL

"ENOENT: no such file or directory, lstat '/mnt/c/Users/<username>/.cache/yarn/v4/<random_file_in_random_package>"

@limonte WSL์—๋Š” npm install / yarn install์„ ์‹คํ–‰ํ•  ๋•Œ ๋ฌด์ž‘์œ„๋กœ ์œ ์‚ฌํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋Š”

์šฐ๋ฆฌ๋Š” ๋˜ํ•œ Extracting tar content of undefined ๋ฌธ์ œ๋ฅผ๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

error https://registry.yarnpkg.com/eslint/-/eslint-4.19.1.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: "ENOENT: no such file or directory, stat '/tmp/yarncache.KTKNZ/v4/npm-eslint-4.19.1-32d1d653e1d90408854bfb296f076ec7e186a300/node_modules/eslint/lib/rules/no-compare-neg-zero.js'"

์ง€๊ธˆ๊นŒ์ง€ --network-concurrency 1 ์˜ต์…˜์œผ๋กœ ํ•˜๋‚˜์˜ ๋™์‹œ ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ ๋งŒ ์‚ฌ์šฉํ•˜์—ฌ์ด ๋ฌธ์ œ๋ฅผ ์™„ํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ์ผ์‹œ์ ์ธ ํ•ด๊ฒฐ์ฑ…์ž…๋‹ˆ๋‹ค.

node:11.5.0-alpine ์—์„œ๋„ ๋ฌธ์ œ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

error An unexpected error occurred: "ENOENT: no such file or directory, lstat '/app/node_modules/<random_pacakge>

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

๋‚ณ๋‹ค

package.json

{
  "dependencies": {
    "react-navigation-core": "https://github.com/react-navigation/react-navigation-core",
    "react-navigation-hooks": "https://github.com/react-navigation/react-navigation-hooks"
  }
}

rm -rf node_modules && yarn cache clean && yarn

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

network-concurrency 1 ์„ค์ •ํ•˜๋ฉด ๋งค๋ฒˆ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

npm install ๋„ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๋ฉ”๋ชจ

์ข…์†์„ฑ ๋ชฉ๋ก์—์„œ ํŒจํ‚ค์ง€๋ฅผ ์ œ๊ฑฐํ•ด๋„ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์œผ๋ฉฐ ํ•ด๋‹น ํŒจํ‚ค์ง€์˜ ๊ฒŒ์‹œ ๋œ npm ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜์ง€๋„ ์•Š์Šต๋‹ˆ๋‹ค.

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

error https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: "ENOENT: no such file or directory, chmod  '/home/cameron/.cache/yarn/v4/npm-core-js-1.2.7-652294c14651db28fa93bd2d5ff2983a4f08c636/node_modules/core-js/library/modules/es6.reflect.apply.js'"

๋ณ€ํ˜•

  • ENOENT: no such file or directory, chmod
  • ENOENT: no such file or directory, stat
  • ENOENT: no such file or directory, open
  • EEXIST: file already exists, mkdir

๊ธฐํƒ€ ๋ฉ”์‹œ์ง€

info There appears to be trouble with your network connection. Retrying...

์‹ค์ œ๋กœ package.json์„ ์‚ฌ์šฉํ•˜์—ฌ ์žฌํ˜„ํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ ์ฒซ ๋ฒˆ์งธ ์‹œ๋„์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค.

WSL ํŒŒ์ผ ์‹œ์Šคํ…œ์€ ์ด๋ฏธ ์กด์žฌํ•˜๋Š” NTFS FS์™€ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ๊ณ„์ธต์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๋งˆ์šดํŠธ ๋œ ๋“œ๋ผ์ด๋ธŒ (์ผ๋ฐ˜์ ์ธ ์˜ˆ์˜ ๊ฒฝ์šฐ / c ๋˜๋Š” / mnt / c) ๋˜๋Š” ํ•ด๋‹น ๋งˆ์šดํŠธ ์ค‘ ํ•˜๋‚˜ ์™ธ๋ถ€์—์„œ์ด ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๊นŒ? ๋Œ€์•ˆ (์˜ˆ : ~ /.)์„ ํ…Œ์ŠคํŠธํ•˜๊ณ  ์ฐจ์ด์ ์„๋ณด๊ณ ํ•ฉ๋‹ˆ๊นŒ?

๋‚ด ์ง๊ฐ์ด ์ž”์†Œ๋ฆฌ๊ฐ€ ๋‚˜์ง€๋งŒ ๋„์ปค ๊ฒฝํ—˜์— ๋ฌธ์ œ๊ฐ€์žˆ์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ์ด๋ฅผ ๋…๋ฆฝ์ ์œผ๋กœ ํ™•์ธํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

[2/4] ํŒจํ‚ค์ง€ ๊ฐ€์ ธ ์˜ค๋Š” ์ค‘ ...
์˜ค๋ฅ˜ https://registry.yarnpkg.com/smartwrap/-/smartwrap-1.0.10.tgz : ์ •์˜๋˜์ง€ ์•Š์€ tar ์ฝ˜ํ…์ธ  ์ถ”์ถœ ์‹คํŒจ, ํŒŒ์ผ์ด co๋กœ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.
rrupt : "ENOENT : ํ•ด๋‹น ํŒŒ์ผ์ด๋‚˜ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. 'C : \ Users \ Administrator \ AppData \ Local \ Yarn \ Cache \ v4 \ npm-smartwrap-1.0.10-873ef350d
4ee1262fed4a80a55634d86ae1faf48 \ node_modules \ smartwrap \ ejq ' "
info์ด ๋ช…๋ น์— ๋Œ€ํ•œ ์„ค๋ช…์„œ๋ฅผ ๋ณด๋ ค๋ฉด https://yarnpkg.com/en/docs/cli/global ์„ ๋ฐฉ๋ฌธ

๋งˆ์šดํŠธ ๋œ ๋“œ๋ผ์ด๋ธŒ (์ผ๋ฐ˜์ ์ธ ์˜ˆ์˜ ๊ฒฝ์šฐ / c ๋˜๋Š” / mnt / c) ๋˜๋Š” ํ•ด๋‹น ๋งˆ์šดํŠธ ์ค‘ ํ•˜๋‚˜ ์™ธ๋ถ€์—์„œ์ด ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๊นŒ? ๋Œ€์•ˆ (์˜ˆ : ~ /.)์„ ํ…Œ์ŠคํŠธํ•˜๊ณ  ์ฐจ์ด์ ์„๋ณด๊ณ ํ•ฉ๋‹ˆ๊นŒ?

์ด๋Ÿฐ ์ผ์ด ์ผ๊ด€๋˜๊ฒŒ ์žฌํ˜„ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ทธ๊ฒƒ์€ ๋‚˜์—๊ฒŒ ๊ฝค ๋ฌด์ž‘์œ„ ์ ์ด์ง€๋งŒ ๋งˆ์šดํŠธ ๋œ ๋“œ๋ผ์ด๋ธŒ์—์„œ yarn add -ing์„ ๋ชจ๋‘ ์ˆ˜ํ–‰ํ•˜๋ฉฐ ์ž์ฃผ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋งˆ์šดํŠธ ๋œ ๋“œ๋ผ์ด๋ธŒ์™€ ~ ๋ชจ๋‘์—์„œ https://github.com/yarnpkg/yarn/issues/2629#issuecomment -451638917์„ ์žฌํ˜„ ํ•  ์ˆ˜์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋˜ํ•œ https://github.com/yarnpkg/yarn/issues/2629#issuecomment -282745896์„ ์žฌํ˜„ํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ ๋งˆ์ง€๋ง‰ ํŒจํ‚ค์ง€๋ฅผ ๊ฐ€์ ธ ์˜ค๋Š” ๋ฐ ๊ณ„์† ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค.

์ง€๋‚œ ๋ช‡ ์‹œ๊ฐ„ ๋™์•ˆ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. yarn์€ ๋ฌด์ž‘์œ„๋กœ ๋‹ค์–‘ํ•œ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜์ง€ ๋ชปํ•˜์—ฌ ์œ„์—์„œ ์–ธ๊ธ‰ ํ•œ ์˜ค๋ฅ˜๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

์›์‚ฌ ์บ์‹œ๋ฅผ ์žฌ์„ค์ •ํ•˜๊ณ  ๋„คํŠธ์›Œํฌ ๋™์‹œ์„ฑ 1๋กœ ๋‹ค์‹œ ์„ค์น˜ ๋ฐ ์‹คํ–‰์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ๋‘˜ ๋‹ค ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๋‚˜๋ฅผ ์œ„ํ•ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ ํ•œ ๊ฒƒ์€ ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ ๋กœ

์ด ๋ฌธ์ œ๊ฐ€ ๋งค์šฐ ํŠน์ •ํ•œ ๋„คํŠธ์›Œํฌ ์˜ค๋ฅ˜์— ๋Œ€ํ•ด ์ž˜๋ชป ์ฒ˜๋ฆฌ ๋œ ๋ณต๊ตฌ์™€ ๊ด€๋ จ์ด์žˆ์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ง๊ฐ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜์ค‘์— ์‚ดํŽด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด์ „ ๋Œ“๊ธ€์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. network-concurrency ์€ ๋„์›€์ด๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ „ํ™” ํ•ซ์ŠคํŒŸ์œผ๋กœ ์ „ํ™˜ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ํ™˜๊ฒฝ : Windows 10 (Linux ํ•˜์œ„ ์‹œ์Šคํ…œ-Ubuntu)

์ €๋Š” WSL์— ์žˆ์œผ๋ฉฐ (์•ฝ๊ฐ„ ์ด์ƒํ•˜๊ฒŒ) ์ค‘์ฒฉ ๋œ ํด๋” ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง„ geo-tz ํŒจํ‚ค์ง€์—์„œ์ด ๋ฌธ์ œ๋ฅผ๋ณด๊ณ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. --network-timeout ๋ฐ --network-concurrency ๋ช‡ ๊ฐ€์ง€ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์•„๋ฌด๊ฒƒ๋„ ์–ป์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Windows์—์„œ ๊ธด ๊ฒฝ๋กœ๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋ฉด (์ด ์ˆ˜ํผ ์œ ์ € ๊ฒŒ์‹œ๋ฌผ ์ฐธ์กฐ) ์ด์ œ ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ์ด๊ฒƒ์€ WSL์˜ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๋„ˆ๋ฌด ๋นจ๋ฆฌ ๋ง์ฒ˜๋Ÿผ ํŽธ์ง‘ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ž‘๋™ํ•˜๊ณ  ์ข…์†์„ฑ ์—ฐ๊ฒฐ์ด ๋” ๋น ๋ฅด์ง€ ๋งŒ ์ด์ œ๋Š” ๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋‹ค์‹œ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

์—ฌ์ „ํžˆ CI๋ฅผ ๊นจ๊ณ  ....

Jenkins ์Šฌ๋ ˆ์ด๋ธŒ ๋…ธ๋“œ ์—ญํ• ์„ํ•˜๋Š” Debian Linux ์‹œ์Šคํ…œ์—์„œ ์‹คํ–‰๋˜๋Š” Yarn 1.13.0์—๋„ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋กœ์ปฌ ์–€ ์ €์žฅ์†Œ ์„œ๋ฒ„๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ๋นŒ๋“œํ•˜๋Š” ๋™์•ˆ ๊ณต์šฉ ์ธํ„ฐ๋„ท ์ €์žฅ์†Œ ์„œ๋ฒ„์—์„œ ๋ฌผ๋ฆฌ์  ๋‹ค์šด๋กœ๋“œ๊ฐ€ ์—†๊ฑฐ๋‚˜ ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค.

yarn install v1.13.0
[1/4] Resolving packages...
[2/4] Fetching packages...
error An unexpected error occurred: "http://sqrep01.rsint.net:4873/lodash/-/lodash-4.17.10.tgz: ENOENT: no such file or directory, open '/home/jenkins/.cache/yarn/v4/npm-lodash-4.17.10-1b7793cf7259ea38fb3661d4d38b3260af8ae4e7/node_modules/lodash/.yarn-tarball.tgz'".

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

Ditto- 1.14 ์—์„œ๋„ ์—ฌ์ „ํžˆ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

Arguments: 
  /home/jeff/n/bin/node /usr/share/yarn/bin/yarn.js install

PATH: 
  /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/mnt/c/Windows/System32:/mnt/c/Windows:/mnt/c/Windows/System32/wbem:/mnt/c/Windows/System32/WindowsPowerShell/v1.0:/mnt/c/Program Files (x86)/NVIDIA Corporation/PhysX/Common:/mnt/c/Windows/System32:/mnt/c/Windows:/mnt/c/Windows/System32/wbem:/mnt/c/Windows/System32/WindowsPowerShell/v1.0:/mnt/c/Windows/System32/OpenSSH:/mnt/c/Program Files/NVIDIA Corporation/NVIDIA NvDLISR:/mnt/c/Program Files/Git/cmd:/mnt/c/Users/jkono/AppData/Local/Microsoft/WindowsApps:/mnt/c/Users/jkono/AppData/Local/hyper/app-2.1.2/resources/bin:/mnt/c/Users/jkono/AppData/Local/Programs/Microsoft VS Code/bin:/home/jeff/n/bin

Yarn version: 
  1.14.0

Node version: 
  10.15.1

Platform: 
  linux x64

Trace: 
  Error: ENOENT: no such file or directory, scandir '/mnt/c/Users/jkono/dev/PROJECT/node_modules/@storybook/addon-links/src'

๋˜ํ•œ:

โžœ  yarn cache dir
/mnt/c/Users/jkono/home/.cache/yarn/v4

์ด๊ฒƒ์€ ๋งค์šฐ ์„ฑ๊ฐ€์‹  ์ผ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋งค์ผ ๋กœ์ปฌ ๋ฐ CI ์‹œ์Šคํ…œ์—์„œ ์ด๊ฒƒ์„ ๋ด…๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด CI์—์„œ๋„ ํ•ญ์ƒ ์ผ์–ด๋‚˜๊ณ  ์žˆ์Œ์„ ์šฐ๋ฆฌ์—๊ฒŒ๋„ ํ™•์ธ

์•ˆ๋…•ํ•˜์„ธ์š”.์ด ๋ฌธ์ œ๊ฐ€ CI์—์„œ ๋ฐœ์ƒ ํ•จ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
์ด๊ฒƒ์€ ๋ฌธ์ œ์˜ ์„ ์ž…๋‹ˆ๋‹ค.

์˜ค๋ฅ˜ https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz : ์ •์˜๋˜์ง€ ์•Š์€ tar ์ฝ˜ํ…์ธ  ์ถ”์ถœ ์‹คํŒจ, ํŒŒ์ผ์ด ์†์ƒ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. "ENOENT : ํ•ด๋‹น ํŒŒ์ผ์ด๋‚˜ ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. chmod '/usr/local/share/.cache/yarn/v4/npm-core-js-1.2.7-652294c14651db28fa93bd2d5ff2983a4f08c636/node_modules/core-js/es7/regexp.js' "
info์ด ๋ช…๋ น์— ๋Œ€ํ•œ ์„ค๋ช…์„œ๋ฅผ ๋ณด๋ ค๋ฉด https://yarnpkg.com/en/docs/cli/install ์„ ๋ฐฉ๋ฌธ

์˜ค๋Š˜ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ ์ค‘ ํ•˜๋‚˜์— ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์—์„œ ์‹คํŒจํ•œ ๋นŒ๋“œ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
https://travis-ci.com/quid/refraction/builds/103692106

๊ทธ๋ฆฌ๊ณ  ์„ฑ๊ณตํ•œ ๊ฒƒ ( --network-concurrency 1 ) :
https://travis-ci.com/quid/refraction/builds/103693682

๋ฌธ์ œ ์ง„๋‹จ์— ๋„์›€์ด๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์ €์žฅ์†Œ์˜ ์†Œ์Šค ์ฝ”๋“œ๋Š” ๋‹ค์Œ ์œ„์น˜์— ์žˆ์Šต๋‹ˆ๋‹ค.
https://github.com/quid/refraction

์•„๋งˆ๋„ ์ด๊ฒƒ์€ ๋ˆ„๊ตฐ๊ฐ€๋ฅผ ๋„์šธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
Jenkins CI์—์„œ ๋ฌธ์ œ๋Š” Jenkins๊ฐ€ ์•ฑ์— ๋Œ€ํ•œ ๋ณ‘๋ ฌ ๋นŒ๋“œ๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ๋‘ ๊ฐœ ์ด์ƒ์˜ ์…ธ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋™์‹œ์— "yarn ์„ค์น˜"๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ–ˆ์œผ๋ฉฐ ๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค ์ค‘ ํ•˜๋‚˜๊ฐ€ ์ถ”๊ฐ€๋กœ ์–€ ์บ์‹œ๋ฅผ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค. "yarn ์„ค์น˜"๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— fully _ ( "yarn cache clean"์‚ฌ์šฉ). ์ด๊ฒƒ์€ ๋ฌผ๋ก  ๋‹ค๋ฅธ ์›์‚ฌ ๊ณต์ •์—์„œ๋Š” ์น˜๋ช…์ ์ธ ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฐ ๋‹ค์Œ ์บ์‹œ ์ •๋ฆฌ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  yarn ๋ช…๋ น์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค.
yarn install --verbose --prefer-offline --mutex file:/tmp/.yarn-mutex --network-concurrency 1
(_-- verbose_๋Š” ์‹ค์ œ๋กœ ํ•„์š”ํ•˜์ง€ ์•Š์Œ) ์‚ฝ์ž…
child-concurrency 1
.yarnrc.
์ด์ œ ๋ณ‘๋ ฌ ๋นŒ๋“œ๊ฐ€ ์‹œ์ž‘๋˜๋ฉด ์–€์€ ๋‹ค๋ฅธ ์–€ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ™œ์„ฑ ์ƒํƒœ์ž„์„ ๊ฐ์ง€ํ•˜๊ณ  ์™„๋ฃŒ ๋  ๋•Œ๊นŒ์ง€ ๋Œ€๊ธฐํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด CI์˜ "ํ•ด๋‹น ํŒŒ์ผ ์—†์Œ"๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ํ˜•์‹์œผ๋กœ ํŒจํ‚ค์ง€ ์ฐธ์กฐ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋งˆ๋‹ค ๋กœ์ปฌ ์ปดํ“จํ„ฐ์—์„œ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

"connect-js-adapter-tls": "git+https://github.com/jeremyjs/connect-js-adapter-tls.git#v3.2.2",

์ฃผ๋ชฉํ• ๋งŒํ•œ ํŠน์„ฑ : ๊ฐœ์ธ ํŒจํ‚ค์ง€, github url, git + https, ํƒœ๊ทธ๊ฐ€ ์ง€์ •๋œ git ์ฐธ์กฐ

๋‚˜๋ฅผ ์œ„ํ•ด ์žฌํ˜„ํ•˜๋Š” ๋‹จ๊ณ„ :

  1. ์Šฌ๋ ˆ์ดํŠธ ์ •๋ฆฌ : ์ด๋Ÿฌํ•œ ๋ชจ๋“  ์ฐธ์กฐ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  yarn install ํ•ฉ๋‹ˆ๋‹ค. ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
  2. ์ด๋Ÿฌํ•œ ๋ชจ๋“  ์ฐธ์กฐ๋ฅผ ๋‚ด package.json ๋‹ค์‹œ ์ถ”๊ฐ€ํ•˜๊ณ  yarn install ๋‹ค์‹œ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ฐธ์กฐ๊ฐ€ ๋‹ค์‹œ ์ถ”๊ฐ€ ๋œ ํ›„ ์ฒซ ๋ฒˆ์งธ ์‹คํ–‰์—์„œ ์—ฌ์ „ํžˆ ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
  3. ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด์—†๋Š” ํ•œ yarn install ์ถ”๊ฐ€ ์‹คํ–‰ ํ›„ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
  4. ๊ทธ๋Ÿฌ๋‚˜ ํŒจํ‚ค์ง€๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  yarn install ์‹คํ–‰ํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
  5. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ด๋Ÿฌํ•œ ํŒจํ‚ค์ง€๋ฅผ ๋ชจ๋‘ ์ œ๊ฑฐํ•˜๊ณ  yarn install ์‹คํ–‰ํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด 1 ๋‹จ๊ณ„๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค.

์˜ค๋ฅ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

error An unexpected error occurred: "ENOENT: no such file or directory, open '/Users/jeremy/Library/Caches/Yarn/v4/npm-connect-js-adapter-tls-3.2.2-0c97726d92c21183a7fb7334344eb5047e8bc158/node_modules/connect-js-adapter-tls/.yarn-metadata.json'".

๋ชจ๋“  git ํƒœ๊ทธ ์ฐธ์กฐ๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด ๋™์ผํ•œ ๋™์ž‘์ด ๊ด€์ฐฐ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ๋ฌธ์ œ๊ฐ€ ๋  ์ˆ˜ ์—†๋‹ค๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค.
์ฆ‰

"connect-js-adapter-tls": "git+https://github.com/jeremyjs/connect-js-adapter-tls.git",

npm install ์‹คํ–‰ํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

npm ERR! premature close

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/jeremy/.npm/_logs/2019-03-20T04_38_38_739Z-debug.log

npm-debug.log : https://gist.github.com/jeremyjs/e97381b16f46124ff7a9bd75ad79fd62

ํ›„์† ์กฐ์น˜๋กœ ์„ค์น˜ํ•˜๊ธฐ ์ „์— package.json ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋งŒ๋“ค์–ด ์บ์‹œ์—์„œ ํ•ด๋‹น ํŒจํ‚ค์ง€๋ฅผ ์ •๋ฆฌํ•˜๋Š” ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

"install-clean": "yarn cache clean connect-js-adapter-tls connect-js-api connect-js-codec connect-js-encode-decode connect-protobuf-messages && yarn install"

์ด ๋ฌธ์ œ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์•„์ง ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ CI (๋„์ปค ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€)์˜ ์ผ๋ถ€๋กœ yarn install ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. yarn cache clean ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค

์ด ์‹œ์ ์—์„œ ๋ฌด์—‡์„ ์‹œ๋„ํ•ด์•ผํ• ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์œผ๋ฉฐ ๋นŒ๋“œ๊ฐ€ ์ค‘๋‹จ๋ฉ๋‹ˆ๋‹ค. ๐Ÿ˜ฌ

Dan, --network-concurrency 1๋กœ ์‹คํ–‰ ํ•ด ๋ณด์…จ์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” ๋น„์Šทํ•œ
์‹œ๋‚˜๋ฆฌ์˜ค๊ฐ€ ๋‚ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.
2019 ๋…„ 4 ์›” 2 ์ผ 22:17์— "Dan Van Brunt" [email protected]์ด ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

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

์ด ์‹œ์ ์—์„œ ๋ฌด์—‡์„ ์‹œ๋„ํ•ด์•ผํ• ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์œผ๋ฉฐ ๋นŒ๋“œ๊ฐ€ ์ค‘๋‹จ๋ฉ๋‹ˆ๋‹ค. ๐Ÿ˜ฌ

โ€”
์ด ์Šค๋ ˆ๋“œ๋ฅผ ๊ตฌ๋…ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—์ด ๋ฉ”์‹œ์ง€๊ฐ€ ์ „์†ก๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/yarnpkg/yarn/issues/2629#issuecomment-479283590 ๋˜๋Š” ์Œ์†Œ๊ฑฐ
์‹ค
https://github.com/notifications/unsubscribe-auth/AFU4O1iKA-HBd62Hema1ETmuUlMro_GLks5vdAEOgaJpZM4L3JbX
.

์šฐ๋ฆฌ CI ๋ฌธ์ œ๋„ ํ•ด๊ฒฐํ•ด ์ค€ @tevaum . ๋˜ํ•œ ๋นŒ๋“œ ์†๋„๊ฐ€ ํฌ๊ฒŒ ์ €ํ•˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋„ˆ๋ฌด ๋”์ฐํ•˜์ง€๋งŒ ์œ ์ผํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

๋„ค. ๋‚˜์œ ๋‹จ์ ์ž…๋‹ˆ๋‹ค. 2 ๋˜๋Š” 4์™€ ๊ฐ™์€ ์ž‘์€ ์ˆซ์ž๋กœ ์‹œ๋„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์กฐ๊ธˆ ๋” ๋น ๋ฅผ ๊ฒƒ์ด์ง€๋งŒ ์ €์—๊ฒŒ ํšจ๊ณผ๊ฐ€ ์žˆ์—ˆ๋˜ ์œ ์ผํ•œ ๊ฐ’์€ 1 : /

๋”ฐ๋ผ์„œ ์‹ค์ œ ์ˆ˜์ •์ด ํ–‰๋ณตํ•ด์งˆ ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ค์•ผํ•ฉ๋‹ˆ๋‹ค.)
2019 ๋…„ 4 ์›” 4 ์ผ 00:26์— "kunokdev" [email protected]์ด ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

@tevaum https://github.com/tevaum ์€ CI ๋ฌธ์ œ๋„ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.
๋˜ํ•œ ๋นŒ๋“œ ์†๋„๊ฐ€ ํฌ๊ฒŒ ์ €ํ•˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋„ˆ๋ฌด ๋”์ฐํ•ฉ๋‹ˆ๋‹ค.

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

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

์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ ๋ ๊นŒ์š”? ์ด๋กœ ์ธํ•ด ๋‘ ๊ฐœ ์ด์ƒ์˜ ํ”„๋กœ์ ํŠธ์—์„œ ์›์‚ฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ฒŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

https://yarnpkg.com/en/docs/cli/#toc -concurrency-and-mutex์— ๋ฌธ์„œํ™” ๋œ mutex ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

Yarn์˜ ์บ์‹œ ์‚ฌ์šฉ์€ ๋‹ค์ค‘ ํ”„๋กœ์„ธ์Šค ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ์— ์•ˆ์ „ํ•˜์ง€ ์•Š์œผ๋ฉฐ ์ด๋Ÿฌํ•œ ์˜ค๋ฅ˜์˜ ์›์ธ์ž…๋‹ˆ๋‹ค.

๋˜๋Š” https://yarnpkg.com/en/docs/cli/cache#change -the-cache-path-for-yarn-์— ๋ฌธ์„œํ™” ๋œ --cache-folder ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ์„ธ์Šค ๋ณ„ ์บ์‹œ ํด๋”๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฎคํ…์Šค ์˜ต์…˜ ์‚ฌ์šฉ์˜ ๋‹จ์ ์€ ์ „์ฒด ์‹œ์Šคํ…œ์— ํ•˜๋‚˜์˜ ์–€ ์ธ์Šคํ„ด์Šค ๋งŒ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค (๋‹ค๋ฅธ ์ธ์Šคํ„ด์Šค๋Š” ํ™œ์„ฑ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆผ). ์ฆ‰, CI ์ž‘์—… ์ „์ฒด์—์„œ ๋™์‹œ์„ฑ์ด ์ „ํ˜€ ์—†์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋กœ์„ธ์Šค ๋‹น ์บ์‹œ ํด๋”์˜ ๋‹จ์ ์€ I / O๊ฐ€ ์ฆ๊ฐ€ํ•˜๊ณ  ์บ์‹œ ์žฌ์‚ฌ์šฉ์ด ์ ์–ด ์ž ์žฌ์  ์ธ ์†์‹ค์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด์ƒ์ ์ธ ์†”๋ฃจ์…˜์€ Node์— ํŒŒ์ผ ์ž ๊ธˆ ๊ธฐ๋Šฅ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์‰ฝ์ง€ ์•Š์€ ํ”„๋กœ์„ธ์Šค ์•ˆ์ „ ์บ์‹œ ๊ตฌํ˜„์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค (์œ ์ผํ•œ ์‹ ๋ขฐํ•  ์ˆ˜์žˆ๋Š” ์˜ต์…˜์€ ๋ฎคํ…์Šค ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค). ๋‘ ๋ฒˆ์งธ๋กœ ์ข‹์€ ๋ฐฉ๋ฒ•์€ ๋™์ผํ•œ arm์—์„œ ๋™์‹œ์„ฑ๊ณผ ์บ์‹œ ์žฌ์‚ฌ์šฉ์„ ํ—ˆ์šฉํ•˜๋Š” per-parallel-arm ์บ์‹œ ํด๋”๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ๋ฎคํ…์Šค ๋ฌผ๊ฑด์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚˜์™€ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์€ ํ•œ ๋ฒˆ์— ๋‹จ์ผ ์›์‚ฌ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ œ ๊ฒฝ์šฐ์—๋Š” Dockerfile์—์„œ RUN yarn install ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ํ•ด๋‹น ํ™˜๊ฒฝ์—์„œ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋™์‹œ์— ์‹คํ–‰๋˜์ง€ ์•Š๋„๋กํ•ฉ๋‹ˆ๋‹ค.

์ตœ์†Œ ์žฌ์ƒ์‚ฐ ์˜ˆ์ œ (์ ์–ด๋„ ๋‚ด OSX์˜ ๊ฒฝ์šฐ)๋ฅผ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

728 22:49:55 iMac ~/tmp/ynse$ ls
Dockerfile  package.json
729 22:49:58 iMac ~/tmp/ynse$ cat Dockerfile
FROM node
ADD . /app
WORKDIR /app
RUN yarn

730 22:50:00 iMac ~/tmp/ynse$ cat package.json
{
  "dependencies": {
    "react-navigation-core": "https://github.com/react-navigation/react-navigation-core",
    "react-navigation-hooks": "https://github.com/react-navigation/react-navigation-hooks"
  }
}
731 22:50:03 iMac ~/tmp/ynse$ docker build -t yt .
Sending build context to Docker daemon  15.87kB
Step 1/4 : FROM node
 ---> 39337023f8d4
Step 2/4 : ADD . /app
 ---> aa86b2d7f191
Step 3/4 : WORKDIR /app
 ---> Running in 83baa8603935
Removing intermediate container 83baa8603935
 ---> 80741f170292
Step 4/4 : RUN yarn
 ---> Running in 0718118bdcd6
yarn install v1.3.2
warning package.json: No license field
info No lockfile found.
warning No license field
[1/4] Resolving packages...
[2/4] Fetching packages...
[1/4] Resolving packages...
[2/4] Fetching packages...
[1/4] Resolving packages...
[2/4] Fetching packages...
info If you think this is a bug, please open a bug report with the information provided in "/app/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
error An unexpected error occurred: "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz: EEXIST: file already exists, mkdir '/usr/local/share/.cache/yarn/v1/npm-lodash-4.17.11-b39ea6229ef607ecd89e2c8df12536891cac9b8d'".
^C
732 22:50:23 iMac ~/tmp/ynse$

@nopik -Yarn 1.3.2๋Š” ๋งค์šฐ ์˜ค๋ž˜๋˜์—ˆ์œผ๋ฉฐ ํ•ด๋‹น ๋ฒ„์ „ ์ดํ›„์— ๋งŽ์€ ์ˆ˜์ • ์‚ฌํ•ญ์ด์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ตœ์‹  Docker ๋‚ด๋ถ€ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์…จ์Šต๋‹ˆ๊นŒ?

์‹ค์ œ๋กœ ๊ทธ ๋…ธ๋“œ ์ด๋ฏธ์ง€๋Š” ๊ฝค ์˜ค๋ž˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ dockerhub node : latest ์—์„œ ๋ช‡ ๋ถ„ ์ „์— ๋‹ค์šด๋กœ๋“œ ํ•œ ์ƒˆ๋กœ์šด ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Sending build context to Docker daemon  15.87kB
Step 1/4 : FROM node
 ---> a9c1445cbd52
Step 2/4 : ADD . /app
 ---> Using cache
 ---> 26ed37136c09
Step 3/4 : WORKDIR /app
 ---> Using cache
 ---> b2339e7d25af
Step 4/4 : RUN yarn
 ---> Running in cdbdfd9c373c
yarn install v1.15.2
warning package.json: No license field
info No lockfile found.
warning No license field
[1/4] Resolving packages...
[2/4] Fetching packages...
[1/4] Resolving packages...
[2/4] Fetching packages...
[1/4] Resolving packages...
[2/4] Fetching packages...
error An unexpected error occurred: "ENOTEMPTY: directory not empty, rmdir '/usr/local/share/.cache/yarn/v4/npm-lodash-4.17.11-b39ea6229ef607ecd89e2c8df12536891cac9b8d/node_modules/lodash'".
info If you think this is a bug, please open a bug report with the information provided in "/app/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

@BYK ์ด ๋„์ปค๋ฅผ ์ง์ ‘ ๋งŒ๋“ค์–ด ๋ณด์…จ์Šต๋‹ˆ๊นŒ?

๋‚ด ์ปดํ“จํ„ฐ (์ง€๊ธˆ ๋ชจ๋ฐ”์ผ)์— ๋„์ฐฉํ•˜๋ฉด ๋ฉฐ์น  ํ›„์— ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ๋งค์šฐ ์ด์ƒํ•ด ๋ณด์ด์ง€๋งŒ ๋””๋ ‰ํ† ๋ฆฌ๋Š” ์ผ๊ด€์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์žฌํ˜„ ์‚ฌ๋ก€์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

@nopik- ๋กœ๊ทธ๋ฅผ ์ž์„ธํžˆ

@BYK ๊ทธ ํŒจํ‚ค์ง€ ์ค‘ ํ•˜๋‚˜์— "scripts": { "build": "yarn babel --out-dir dist && del-cli 'dist/**/__tests__' && yarn tsc --emitDeclarationOnly", "prepare": "yarn build" } ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ๋‹ค๋ฅธ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ ์•„์ง ์ค€๋น„์ค‘์ธ yarn์„ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์„ค์น˜ ์ค‘์— yarn์— ์˜ํ•ด ์‹คํ–‰๋ฉ๋‹ˆ๊นŒ?

@Nopik- ๋‹ค๋ฅธ ์„ค์น˜๊ฐ€ ์•„๋‹Œ ๋‹จ์ˆœํžˆ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ๋˜ํ•œ ์ด๋Ÿฌํ•œ ์Šคํฌ๋ฆฝํŠธ๋Š” I / O ๋‹จ๊ณ„ ํ›„์— ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ yarn install ์ธ์Šคํ„ด์Šค๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•˜๋Š” ๋‹ค๋ฅธ ํ•ญ๋ชฉ์ด ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ์•„๋งˆ๋„ ๋™์‹œ์— ์‹คํ–‰๋˜๋Š” ์—ฌ๋Ÿฌ ์‹ค์˜ ์ธ์Šคํ„ด์Šค๋ผ๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ๋Š” ์ด๊ฒƒ์ด yarn ์˜ ๋‹จ์ผ CLI ํ˜ธ์ถœ์—์„œ ๋ฐœ์ƒํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์žฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด๋„ ์ปค๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

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

์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ์—๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์‹ค ์ธ์Šคํ„ด์Šค๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ ์‹œ์Šคํ…œ์€ ์ž์ฒด ๋„์ปค ์ด๋ฏธ์ง€์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ๋‹จ์ผ _ ์›์‚ฌ ์„ค์น˜ _๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ‘์ž๊ธฐ ์˜ค์ž‘๋™ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๊ณ  ์ด์ œ ๋„คํŠธ์›Œํฌ ๋™์‹œ์„ฑ์„ 1๋กœ ์„ค์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ์ž‘์—… ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
์›์‚ฌ ์ž์ฒด๊ฐ€ ๋ฐค์ƒˆ ๋ฐ”๋€Œ์ง€ ์•Š๋Š” ํ•œ

--mutex file ๋˜๋Š” --mutex network ๋กœ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๊ณ ํ•˜๋ฉด ํ•„์—ฐ์ ์œผ๋กœ (์•„๋งˆ๋„)์ด ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค https://github.com/yarnpkg/yarn/issues/6650 (ํ˜„์žฌ 6 ๊ฐœ์›” ๋™์•ˆ ์˜คํ”ˆ / ๋ฏธํ•ด๊ฒฐ) ๐Ÿ˜ข

์ฆ‰, yarn install ์‹คํ–‰ํ•˜๋ฉด ์„ฑ๊ณตํ•˜๋”๋ผ๋„ ๋‹ค๋ฅธ yarn ๋ช…๋ น์„ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

Dan, --network-concurrency 1๋กœ ์‹คํ–‰ ํ•ด ๋ณด์…จ์Šต๋‹ˆ๊นŒ? ๋น„์Šทํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค๊ฐ€ ์žˆ์œผ๋ฉฐ ๋‚ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

@tevaum- ๊ทธ๊ฒŒ ๋ฐ”๋กœ ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌ!
๋‚˜๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์‹คํ–‰ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿคฆโ€โ™‚๏ธ

@tevaum ๋„ ๋‚˜๋ฅผ ์œ„ํ•ด ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

--mutex ํŒŒ์ผ ๋˜๋Š” --mutex ๋„คํŠธ์›Œํฌ๋กœ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๊ณ ํ•˜๋ฉด ๋ถˆ๊ฐ€ํ”ผํ•˜๊ฒŒ (์•„๋งˆ๋„)์ด ๋ฒ„๊ทธ # 6650 (ํ˜„์žฌ 6 ๊ฐœ์›” ๋™์•ˆ ์—ด๋ฆผ / ํ•ด๊ฒฐ๋˜์ง€ ์•Š์Œ)์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

@sarink โ€” ๋ฎคํ…์Šค ์˜ต์…˜ ๋ฒ„๊ทธ๋„ ๋งŒ๋‚ฌ์Šต๋‹ˆ๋‹ค. ์–ธ๊ธ‰ ํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

yarn ๋Š” ๋ชจ๋“  ๊ฒƒ์ด ์ •์ƒ์ด๋ผ๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค.

PS C:\Users\chtacklind\Desktop\git\Project> yarn --verbose
yarn install v1.10.1
verbose 0.282 Checking for configuration file "C:\\Users\\chtacklind\\Desktop\\git\\Project\\.npmrc".
verbose 0.284 Found configuration file "C:\\Users\\chtacklind\\Desktop\\git\\Project\\.npmrc".
verbose 0.285 Checking for configuration file "C:\\Users\\chtacklind\\.npmrc".
verbose 0.286 Checking for configuration file "C:\\Program Files\\nodejs\\etc\\npmrc".
verbose 0.288 Checking for configuration file "C:\\Users\\chtacklind\\Desktop\\git\\Project\\.npmrc".
verbose 0.289 Found configuration file "C:\\Users\\chtacklind\\Desktop\\git\\Project\\.npmrc".
verbose 0.29 Checking for configuration file "C:\\Users\\chtacklind\\Desktop\\git\\.npmrc".
verbose 0.291 Checking for configuration file "C:\\Users\\chtacklind\\Desktop\\.npmrc".
verbose 0.295 Checking for configuration file "C:\\Users\\chtacklind\\.npmrc".
verbose 0.297 Checking for configuration file "C:\\Users\\.npmrc".
verbose 0.3 Checking for configuration file "C:\\Users\\chtacklind\\Desktop\\git\\Project\\.yarnrc".
verbose 0.301 Found configuration file "C:\\Users\\chtacklind\\Desktop\\git\\Project\\.yarnrc".
verbose 0.302 Checking for configuration file "C:\\Users\\chtacklind\\.yarnrc".
verbose 0.309 Found configuration file "C:\\Users\\chtacklind\\.yarnrc".
verbose 0.312 Checking for configuration file "C:\\Program Files\\nodejs\\etc\\yarnrc".
verbose 0.317 Checking for configuration file "C:\\Users\\chtacklind\\Desktop\\git\\Project\\.yarnrc".
verbose 0.318 Found configuration file "C:\\Users\\chtacklind\\Desktop\\git\\Project\\.yarnrc".
verbose 0.319 Checking for configuration file "C:\\Users\\chtacklind\\Desktop\\git\\.yarnrc".
verbose 0.326 Checking for configuration file "C:\\Users\\chtacklind\\Desktop\\.yarnrc".
verbose 0.327 Checking for configuration file "C:\\Users\\chtacklind\\.yarnrc".
verbose 0.333 Found configuration file "C:\\Users\\chtacklind\\.yarnrc".
verbose 0.336 Checking for configuration file "C:\\Users\\.yarnrc".
verbose 0.346 current time: 2019-05-12T11:56:12.800Z
[1/4] Resolving packages...
success Already up-to-date.
Done in 0.33s.

๊ทธ๋Ÿฌ๋‚˜ yarn --check ์‹คํ–‰ํ•˜๋ฉด ๋นŒ๋“œ๋ฅผ ์‹œ๋„ํ•˜์ง€๋งŒ ํ•ญ์ƒ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

๋•Œ๋•Œ๋กœ ๋์— ์ž˜๋ชป๋œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

PS C:\Users\chtacklind\Desktop\git\Project> yarn --check-files --network-concurrency 1 --mutex file:C:/.yarn-mutex --verbose
yarn install v1.10.1
verbose 0.286 Checking for configuration file "C:\\Users\\chtacklind\\Desktop\\git\\Project\\.npmrc".
verbose 0.288 Found configuration file "C:\\Users\\chtacklind\\Desktop\\git\\Project\\.npmrc".
verbose 0.289 Checking for configuration file "C:\\Users\\chtacklind\\.npmrc".
verbose 0.29 Checking for configuration file "C:\\Program Files\\nodejs\\etc\\npmrc".
verbose 0.291 Checking for configuration file "C:\\Users\\chtacklind\\Desktop\\git\\Project\\.npmrc".
verbose 0.292 Found configuration file "C:\\Users\\chtacklind\\Desktop\\git\\Project\\.npmrc".
verbose 0.293 Checking for configuration file "C:\\Users\\chtacklind\\Desktop\\git\\.npmrc".
verbose 0.294 Checking for configuration file "C:\\Users\\chtacklind\\Desktop\\.npmrc".
verbose 0.295 Checking for configuration file "C:\\Users\\chtacklind\\.npmrc".
verbose 0.296 Checking for configuration file "C:\\Users\\.npmrc".
verbose 0.302 Checking for configuration file "C:\\Users\\chtacklind\\Desktop\\git\\Project\\.yarnrc".
verbose 0.304 Found configuration file "C:\\Users\\chtacklind\\Desktop\\git\\Project\\.yarnrc".
verbose 0.305 Checking for configuration file "C:\\Users\\chtacklind\\.yarnrc".
verbose 0.306 Found configuration file "C:\\Users\\chtacklind\\.yarnrc".
verbose 0.307 Checking for configuration file "C:\\Program Files\\nodejs\\etc\\yarnrc".
verbose 0.308 Checking for configuration file "C:\\Users\\chtacklind\\Desktop\\git\\Project\\.yarnrc".
verbose 0.311 Found configuration file "C:\\Users\\chtacklind\\Desktop\\git\\Project\\.yarnrc".
verbose 0.313 Checking for configuration file "C:\\Users\\chtacklind\\Desktop\\git\\.yarnrc".
verbose 0.314 Checking for configuration file "C:\\Users\\chtacklind\\Desktop\\.yarnrc".
verbose 0.315 Checking for configuration file "C:\\Users\\chtacklind\\.yarnrc".
verbose 0.316 Found configuration file "C:\\Users\\chtacklind\\.yarnrc".
verbose 0.317 Checking for configuration file "C:\\Users\\.yarnrc".
verbose 0.32 current time: 2019-05-12T11:56:20.033Z
[1/4] Resolving packages...
[2/4] Fetching packages...
verbose 2.344 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\v2\\.tmp\\ef8122f161347726dd1763e1dca6eeef.d34344cbdf2ff518a03c08fc5f46827c9d66e543.prepare\\.npmrc".
verbose 2.344 Checking for configuration file "C:\\Users\\chtacklind\\.npmrc".
verbose 2.345 Checking for configuration file "C:\\Program Files\\nodejs\\etc\\npmrc".
verbose 2.345 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\v2\\.tmp\\ef8122f161347726dd1763e1dca6eeef.d34344cbdf2ff518a03c08fc5f46827c9d66e543.prepare\\.npmrc".
verbose 2.346 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\v2\\.tmp\\.npmrc".
verbose 2.346 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\v2\\.npmrc".
verbose 2.346 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\.npmrc".
verbose 2.346 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\.npmrc".
verbose 2.347 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\.npmrc".
verbose 2.347 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\.npmrc".
verbose 2.347 Checking for configuration file "C:\\Users\\chtacklind\\.npmrc".
verbose 2.348 Checking for configuration file "C:\\Users\\.npmrc".
verbose 2.348 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\v2\\.tmp\\ef8122f161347726dd1763e1dca6eeef.d34344cbdf2ff518a03c08fc5f46827c9d66e543.prepare\\.yarnrc".
verbose 2.349 Checking for configuration file "C:\\Users\\chtacklind\\.yarnrc".
verbose 2.35 Found configuration file "C:\\Users\\chtacklind\\.yarnrc".
verbose 2.351 Checking for configuration file "C:\\Program Files\\nodejs\\etc\\yarnrc".
verbose 2.352 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\v2\\.tmp\\ef8122f161347726dd1763e1dca6eeef.d34344cbdf2ff518a03c08fc5f46827c9d66e543.prepare\\.yarnrc".
verbose 2.353 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\v2\\.tmp\\.yarnrc".
verbose 2.358 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\v2\\.yarnrc".
verbose 2.359 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\.yarnrc".
verbose 2.36 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\.yarnrc".
verbose 2.361 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\.yarnrc".
verbose 2.362 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\.yarnrc".
verbose 2.363 Checking for configuration file "C:\\Users\\chtacklind\\.yarnrc".
verbose 2.364 Found configuration file "C:\\Users\\chtacklind\\.yarnrc".
verbose 2.366 Checking for configuration file "C:\\Users\\.yarnrc".
[1/4] Resolving packages...
[2/4] Fetching packages...
verbose 2.541 Performing "GET" request to "https://registry.yarnpkg.com/typescript/-/typescript-3.3.3333.tgz".
verbose 3.263 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\v2\\.tmp\\6621674c4e43b664dde14df71eaf0cc8.09d44d8abc94f728f1c5ea93c22fe9b4f87d9076.prepare\\.npmrc".
verbose 3.264 Checking for configuration file "C:\\Users\\chtacklind\\.npmrc".
verbose 3.265 Checking for configuration file "C:\\Program Files\\nodejs\\etc\\npmrc".
verbose 3.266 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\v2\\.tmp\\6621674c4e43b664dde14df71eaf0cc8.09d44d8abc94f728f1c5ea93c22fe9b4f87d9076.prepare\\.npmrc".
verbose 3.268 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\v2\\.tmp\\.npmrc".
verbose 3.27 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\v2\\.npmrc".
verbose 3.271 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\.npmrc".
verbose 3.273 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\.npmrc".
verbose 3.278 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\.npmrc".
verbose 3.279 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\.npmrc".
verbose 3.28 Checking for configuration file "C:\\Users\\chtacklind\\.npmrc".
verbose 3.281 Checking for configuration file "C:\\Users\\.npmrc".
verbose 3.283 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\v2\\.tmp\\6621674c4e43b664dde14df71eaf0cc8.09d44d8abc94f728f1c5ea93c22fe9b4f87d9076.prepare\\.yarnrc".
verbose 3.285 Checking for configuration file "C:\\Users\\chtacklind\\.yarnrc".
verbose 5.007 Error: https://registry.yarnpkg.com/typescript/-/typescript-3.3.3333.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: "ENOENT: no such file or directory, stat 'C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\v2\\npm-typescript-3.3.3333-171b2c5af66c59e9431199117a3bcadc66fdcfd6\\lib\\tsserver.js'"nd\\AppData\\Local\\Yarn\\Cache\\v2\\.tmp\\6621674c4e43b664dde14df71eaf0cc
    at MessageError.ExtendableBuiltin (C:\Program Files (x86)\Yarn\lib\cli.js:243:66)
    at new MessageError (C:\Program Files (x86)\Yarn\lib\cli.js:272:123)pData\\Local\\Yarn\\Cache\\v2\\.tmp\\.yarnrc".
    at Extract.<anonymous> (C:\Program Files (x86)\Yarn\lib\cli.js:56849:14)a\\Local\\Yarn\\Cache\\v2\\.yarnrc".
    at Extract.emit (events.js:194:15)on file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\.yarnrc".
    at Extract.module.exports.Extract.destroy (C:\Program Files (x86)\Yarn\lib\cli.js:131115:17)nrc".
    at onunlock (C:\Program Files (x86)\Yarn\lib\cli.js:130992:26)nd\\AppData\\Local\\.yarnrc".
    at C:\Program Files (x86)\Yarn\lib\cli.js:43373:25rs\\chtacklind\\AppData\\.yarnrc".
    at C:\Program Files (x86)\Yarn\lib\cli.js:43339:23rs\\chtacklind\\.yarnrc".
    at C:\Program Files (x86)\Yarn\lib\cli.js:56799:13acklind\\.yarnrc".
    at FSReqWrap.oncomplete (fs.js:153:21)ile "C:\\Users\\.yarnrc".
error https://registry.yarnpkg.com/typescript/-/typescript-3.3.3333.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: "ENOENT: no such file or directory, stat 'C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\v2\\npm-typescript-3.3.3333-171b2c5af66c59e9431199117a3bcadc66fdcfd6\\lib\\tsserver.js'"
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
PS C:\Users\chtacklind\Desktop\git\Project>

๋•Œ๋•Œ๋กœ ๋‹ค๋ฅธ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

...
[2/4] Fetching packages...
verbose 2.635 Performing "GET" request to "https://registry.yarnpkg.com/typescript/-/typescript-3.3.3333.tgz".
verbose 3.465 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\v2\\.tmp\\6621674c4e43b664dde14df71eaf0cc8.09d44d8abc94f728f1c5ea93c22fe9b4f87d9076.prepare\\.npmrc".
verbose 3.466 Checking for configuration file "C:\\Users\\chtacklind\\.npmrc".
verbose 3.467 Checking for configuration file "C:\\Program Files\\nodejs\\etc\\npmrc".
verbose 3.468 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\v2\\.tmp\\6621674c4e43b664dde14df71eaf0cc8.09d44d8abc94f728f1c5ea93c22fe9b4f87d9076.prepare\\.npmrc".
verbose 3.469 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\v2\\.tmp\\.npmrc".
verbose 3.47 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\v2\\.npmrc".
verbose 3.471 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\.npmrc".
verbose 3.473 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\.npmrc".
verbose 3.474 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\.npmrc".
verbose 3.48 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\.npmrc".
verbose 3.481 Checking for configuration file "C:\\Users\\chtacklind\\.npmrc".
verbose 3.482 Checking for configuration file "C:\\Users\\.npmrc".
verbose 3.483 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\v2\\.tmp\\6621674c4e43b664dde14df71eaf0cc8.09d44d8abc94f728f1c5ea93c22fe9b4f87d9076.prepare\\.yarnrc".
verbose 3.485 Checking for configuration file "C:\\Users\\chtacklind\\.yarnrc".
verbose 3.486 Found configuration file "C:\\Users\\chtacklind\\.yarnrc".
verbose 3.49 Checking for configuration file "C:\\Program Files\\nodejs\\etc\\yarnrc".
verbose 3.492 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\v2\\.tmp\\6621674c4e43b664dde14df71eaf0cc8.09d44d8abc94f728f1c5ea93c22fe9b4f87d9076.prepare\\.yarnrc".
verbose 3.493 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\v2\\.tmp\\.yarnrc".
verbose 3.494 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\v2\\.yarnrc".
verbose 3.495 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\.yarnrc".
verbose 3.496 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\.yarnrc".
verbose 3.497 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\Local\\.yarnrc".
verbose 3.501 Checking for configuration file "C:\\Users\\chtacklind\\AppData\\.yarnrc".
verbose 3.503 Checking for configuration file "C:\\Users\\chtacklind\\.yarnrc".
verbose 3.504 Found configuration file "C:\\Users\\chtacklind\\.yarnrc".
verbose 3.505 Checking for configuration file "C:\\Users\\.yarnrc".
[1/4] Resolving packages...
[2/4] Fetching packages...
verbose 4.608 Error: EPERM: operation not permitted, unlink 'C:\Users\chtacklind\AppData\Local\Yarn\Cache\v2\npm-typescript-3.3.3333-171b2c5af66c59e9431199117a3bcadc66fdcfd6\.yarn-tarball.tgz'
error An unexpected error occurred: "EPERM: operation not permitted, unlink 'C:\\Users\\chtacklind\\AppData\\Local\\Yarn\\Cache\\v2\\npm-typescript-3.3.3333-171b2c5af66c59e9431199117a3bcadc66fdcfd6\\.yarn-tarball.tgz'".
info If you think this is a bug, please open a bug report with the information provided in "C:\\Users\\chtacklind\\Desktop\\git\\Project\\yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
PS C:\Users\chtacklind\Desktop\git\Project>

--mutex ์ง€์ •ํ–ˆ์ง€๋งŒ ๋‘ ๊ฐœ์˜ ์‹ค ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

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

์™œ ์› ์‚ฌ๋Š” ๋งํ•˜์ง€ ์•Š์•„๋„ ์—ฌ๋Ÿฌ ์ธ์Šคํ„ด์Šค๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๊นŒ?

์—…๋ฐ์ดํŠธ๋กœ yarn install --network-concurrency 1 --mutex network ์‚ฌ์šฉ์€ ํ•˜๋‚˜ ๋˜๋Š” ๋‹ค๋ฅธ ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์‹œ๊ฐ„์˜ ์ผ๋ถ€๋งŒ ์„ฑ๊ณตํ•˜๋Š” ๊ฒฝํ–ฅ์ด์žˆ๋Š” ๋งค๋ฒˆ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?
Ubuntu Linux 18.04์—์„œ yarn 1.16์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์—ฌ์ „ํžˆ์ด ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

error ์˜ˆ๊ธฐ์น˜ ์•Š์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค : "ENOENT : no such file or directory, lstat '/ home / user / workspace / project / packages / components / node_modules / source-map-support'".

๋‚ด ๋ช…๋ น์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

yarn install --check-files --frozen-lockfile --network-concurrency 1

๊ทธ๋ฆฌ๊ณ  ๋‘ ๋ฒˆ์— ํ•œ ๋ฒˆ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
์ถ”์‹  : ์ €๋Š” monorepo์—์„œ ์ž‘์—…ํ•˜๋ฏ€๋กœ yarn ์ž‘์—… ๊ณต๊ฐ„์„ ํ™œ์„ฑํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค.
PPS :
๋‚˜๋Š” ๋‘ ๋ฒˆ ํ™•์ธํ–ˆ๋‹ค
--mutex ํŒŒ์ผ ๋˜๋Š” --mutex ๋„คํŠธ์›Œํฌ๋ฅผ ์ถ”๊ฐ€ํ•ด๋„ ๋„์›€์ด๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ž‘ํ’ˆ์ด ์Šคํฌ๋ฆฝํŠธ์— ๋“ค์–ด๊ฐ€๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜์žˆ๋Š” ์œ ์ผํ•œ ์†”๋ฃจ์…˜

    yarn install --check-files --frozen-lockfile;
do
    echo "Surprise, surprise. Let's try again..."
done

:(

Fwiw, yarn ๋ฅผ npm ๋กœ ์ฐพ๊ธฐ / ๋ฐ”๊พธ๊ธฐ ๋งŒ ์ˆ˜ํ–‰ํ•˜๊ณ  synp ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ yarn.lock ๋ฅผ package-lock.json ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ npm ์œผ๋กœ ์ „ํ™˜ ํ•  ์ˆ˜ npm install ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๊ณ ํ†ต์Šค๋Ÿฌ์šด ๊ณผ์ •์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์ง€๋งŒ npm์€ ๋งŽ์ด ๋ฐœ์ „ํ–ˆ๊ณ  30 ๋ถ„ ๋ฐ–์— ๊ฑธ๋ฆฌ์ง€ ์•Š์•˜๊ณ  ์ด์ œ๋Š” ์–ด๋””์—์„œ๋‚˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

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

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

์ €๋Š”์ด ์ด๋ก ์„ ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์œ„ํ•ด ๋ถ€ํ’€๋ ค์ง„ "์ค€๋น„"๋‹จ๊ณ„๋กœ ๊ฐ„๋‹จํ•œ ๊ฐœ๋… ์ฆ๋ช… ํŒจํ‚ค์ง€๋ฅผ ๋งŒ๋“ค๋ ค๊ณ ํ–ˆ์ง€๋งŒ ์‹œ๊ฐ„์ด ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์ดํ•ดํ•˜๊ธฐ ์ „์— ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด์ด ์ด๋ก ์„ ํ…Œ์ŠคํŠธ ํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”?

์ด๊ฒƒ์€ ๋™์‹œ์— ์‹คํ–‰๋˜๋Š” ์—ฌ๋Ÿฌ ์›์‚ฌ ์ธ์Šคํ„ด์Šค๊ฐ€์žˆ์„ ๋•Œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ์„ค๋ช… ๋œ --mutex ์˜ต์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. https://yarnpkg.com/en/docs/cli/#toc -concurrency-and-mutex

@BYK ์ด๊ฒƒ์ด ๋ฌธ์ œ๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์€์ด ์˜ต์…˜์ด ๊ทธ๋“ค์—๊ฒŒ ๋‹ค๋ฅธ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚จ๋‹ค ๊ณ  ์ง€์ ํ•˜๊ธฐ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.

@cinderblock # 6650์€ ์—ฃ์ง€ ์ผ€์ด์Šค์ฒ˜๋Ÿผ --ignore-scripts ์˜ํ•ด ํ”ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ๋ฆฌ๋“œ๊ฐ€์žˆ๋Š” ๊ฒฝ์šฐ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ๋””๋ฒ„๊น…์— ๋” ๋งŽ์€ ์‹œ๊ฐ„์„ ํ• ์•  ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ณต์œ ํ•ด์ฃผ์„ธ์š”.

@BYK install ์Šคํฌ๋ฆฝํŠธ ๋‚ด์—์„œ ์˜๋„์ ์œผ๋กœ yarn install ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ์„ ๋ณธ ์ ์ด ์—†์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์ด ๋ดค์–ด ์ด ์‚ฌ์†Œํ•œ package.json ์ด ๋ฌธ์ œ๋ฅผ ์ƒ์‚ฐํ•˜๋Š”? ์ด ์˜ค๋ฅ˜๋ฅผ ์œ ๋ฐœํ•˜๋Š” ์ข…์† ํŒจํ‚ค์ง€์˜ ๋ฌด์–ธ๊ฐ€์ด๋ฉฐ, ์•„๋งˆ๋„ install ๊ฐ€ ๋ฌปํ˜€์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ package.json ๋Š” npm ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค ...

๊ด€๋ จ, --ignore-scripts ๊ถŒ์žฅ ๋ฐฉ๋ฒ• / ์œ„์น˜๋Š”? ๋งŽ์€ ํŒจํ‚ค์ง€๊ฐ€ ์ž‘๋™ํ•˜๊ธฐ ์œ„ํ•ด ์„ค์น˜ ํ›„ ์Šคํฌ๋ฆฝํŠธ์— ์˜์กดํ•ฉ๋‹ˆ๋‹ค.

--ignore-scripts๋Š” ์–ด๋–ป๊ฒŒ / ์–ด๋””์—์„œ ๊ถŒ์žฅ๋ฉ๋‹ˆ๊นŒ? ๋งŽ์€ ํŒจํ‚ค์ง€๊ฐ€ ์ž‘๋™ํ•˜๊ธฐ ์œ„ํ•ด ์„ค์น˜ ํ›„ ์Šคํฌ๋ฆฝํŠธ์— ์˜์กดํ•ฉ๋‹ˆ๋‹ค.

์•„, ๊ทธ๋ƒฅ ์—ฌ๊ธฐ์— ์ถ”์ฒœํ–ˆ๋Š”๋ฐ ์–€์˜ ๋งŽ์€ ๋ฉค๋ฒ„๋“ค์ด ์ด๊ฒƒ์— ๋Œ€ํ•ด ๋ชฉ์†Œ๋ฆฌ๋ฅผ ๋ƒˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ˜€ ๋Œ€๋ถ€๋ถ„์˜ ํŒจํ‚ค์ง€๋Š” ๊ดœ์ฐฎ์ง€ ๋งŒ ์‹ค์ œ๋กœ ์„ค์น˜ ํ›„ scrpits์— ์˜์กดํ•˜๋Š” ๋ช‡ ๊ฐ€์ง€ ํŒจํ‚ค์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์‚ฌ์†Œํ•œ ํŒจํ‚ค์ง€๋ฅผ ๋ณด์•˜์Šต๋‹ˆ๊นŒ?

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

  • yarn์€ ๋„ˆ๋ฌด ์—‰๋ง์ด์–ด์„œ์ด _trivial_ package.json ํŒŒ์ผ์„ ์ฒ˜๋ฆฌ ํ•  ์ˆ˜๋„ ์—†์Šต๋‹ˆ๋‹ค.
  • ์ด ๋ฌธ์ œ๋Š” _trivial_ package.json ํŒŒ์ผ๋กœ ์žฌํ˜„ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ๋“ค ์ค‘ ์–ด๋Š ๊ฒƒ๋„ ๋„์›€์ด๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋‚˜๋Š” ๋‹น์‹ ์˜ ์ฝ”๋ฉ˜ํŠธ๋ฅผ ๋ฌด์‹œํ•˜๋Š” ๊ฒฝํ–ฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์‹ค์ œ ๋ฌธ์ œ์˜ ๊ฒฝ์šฐ yarn์ด mutex๋กœ ์‹คํ–‰ ๋˜๋ ค๋ฉด --mutex ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  yarn ์ธ์Šคํ„ด์Šค๋ฅผ ํ˜ธ์ถœํ•ด์•ผํ•˜๋ฏ€๋กœ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์€ --install.mutex network ๋ฅผ .yarnrc ํŒŒ์ผ (https://yarnpkg.com/en/docs/yarnrc#toc-cli-arguments ์ฐธ์กฐ). ์ฆ‰, ์ดˆ๊ธฐ ์„ค์น˜๊ฐ€ ๋‹ค๋ฅธ ์„ค์น˜๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•˜๋ฉด ๊ต์ฐฉ ์ƒํƒœ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ ์„ค์น˜๋Š” ๊ธฐ๋ณธ ์„ค์น˜๊ฐ€ ์™„๋ฃŒ ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆด ๊ฒƒ์ด๊ณ  ๊ธฐ๋ณธ ์„ค์น˜๋Š”์ด ์Šคํฌ๋ฆฝํŠธ ํ˜ธ์ถœ ์›์‚ฌ์—์„œ ์™„๋ฃŒ ๋  ๋•Œ๊นŒ์ง€ ์ฐจ๋‹จ๋˜๋ฏ€๋กœ ์‹ค์ œ๋กœ๋Š” ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค. node ์ œ๊ณตํ•˜๋Š” ์ž ๊ธˆ ๊ธฐ๋ณธ ์š”์†Œ๋กœ๋Š” ๊ฑฐ์˜ ๋ถˆ๊ฐ€๋Šฅํ•œ ์Šค๋ ˆ๋“œ / ํ”„๋กœ์„ธ์Šค ์•ˆ์ „ ์บ์‹œ ์‹œ์Šคํ…œ์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ ์™ธ์—์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๊ฒƒ์€์ด ์ ์ ˆํ•œ ์ž ๊ธˆ ํŒจํ‚ค์ง€์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ ์šฐ๋ฆฌ ์ค‘ ๋ˆ„๊ตฌ๋„ ๊ทธ๊ฒƒ์„ ์‹œ๋„ ํ•  ์‹œ๊ฐ„์ด ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์„ ์บ์‹œ ์“ฐ๊ธฐ / ์ฝ๊ธฐ ์ฝ”๋“œ์— ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ๊ด€์‹ฌ์ด ์žˆ๋‹ค๋ฉด ๋„์™€ ๋“œ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@BYK ์•„,

๋‚ด ์ง€์†์„ฑ์„ ์šฉ์„œํ•˜์ง€๋งŒ ๋ฎคํ…์Šค ์˜ต์…˜์ด ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐ์ฑ…์ธ์ง€ ์—ฌ์ „ํžˆ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋ฎคํ…์Šค๋กœ ์‹คํ–‰์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ๋™์‹œ์— ์‹ค์„ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ์—์„œ ์‹ค์ˆ˜๋ฅผํ–ˆ์„๊นŒ์š”? yarn --mutex ... ์‹คํ–‰ํ•˜๋ฉด ํ•ด๋‹น ์˜ต์…˜์ด ์ž์‹ ์ธ์Šคํ„ด์Šค์— ์ „๋‹ฌ ๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค (์˜ˆ make ์ฒ˜๋Ÿผ). ๋˜ํ•œ --install.mutex network ์„ ๋‚ด .yarnrc ํŒŒ์ผ์— ์ถ”๊ฐ€ํ•˜๋ผ๋Š” ์ œ์•ˆ์„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค (๋™์ผํ•œ ์˜ค๋ฅ˜). --verbose ๋Š” ์˜ต์…˜์ด๋กœ๋“œ๋˜๊ณ  ์žˆ์Œ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ๋ฐฉํ–ฅ์—์„œ ์˜ฌ ์ˆ˜ ์žˆ์„๊นŒ์š”? npm์ด ์•„๋‹Œ ์–€์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? npm์— ์™œ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๊นŒ?

@BYK , mutex ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์™„์ „ํžˆ ๋ฐ›์•„ ๋“ค์ผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด _ ๋‹ค๋ฅธ ์–€ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์ง€ ๋ชปํ•˜๊ฒŒํ•˜๋Š” ์ถ”๊ฐ€ ์–€ ๋ฒ„๊ทธ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค _... ์ด๊ฒƒ์€ "๋‚ด ํ‚ค๋ฅผ ๋‚ด ์ฐจ "๋Š”"๊ฑฑ์ •ํ•˜์ง€ ๋งˆ์„ธ์š”. ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค!์ด ํŽธ๋ฆฌํ•œ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ์ฐฝ๋ฌธ๊ณผ ๋ฌธ ์ž ๊ธˆ ์žฅ์น˜๋ฅผ ๋‘๋“œ๋ฆฌ๋ฉด ์ด์ œ ๋‹ค์‹œ๋Š” ์ฐจ๋ฅผ ์ž ๊ธ€ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค! " ๐Ÿ™„

์‚ฌ์†Œํ•œ package.json ์ด๋“  ์•„๋‹ˆ๋“ , ์ด๊ฒƒ์€ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์›์‚ฌ๋ฅผ ์™„์ „ํžˆ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ฒŒ ๋งŒ๋“œ๋Š” ํ•ด๊ฒฐ์ฑ…์ด๋‚˜ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด์—†๋Š” ํฐ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๋” ๋งŽ์€ ๊ด€์‹ฌ์„ ๋ฐ›์•„์•ผํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ ์˜คํ”ˆํ•œ์ง€ _2 ๋…„ _์„ ๊ฐ์•ˆํ•˜๋ฉด.

ํ—‰

@BYK , mutex ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์™„์ „ํžˆ ์šฉ๋‚ฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ถ”๊ฐ€ yarn ๋ฒ„๊ทธ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ yarn ๋ช…๋ น์„ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค ...

๊ทธ๋Ÿฐ ๋ฒ„๊ทธ์— ๋Œ€ํ•ด ์•Œ๊ณ  ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋ฏธ๋ณด๊ณ  ๋œ ๊ฒฝ์šฐ ์•Œ๋ ค์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? --mutex ์ž‘๋™ ๋ฐฉ์‹์€ ๋™์ผํ•œ ๋ฎคํ…์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋‹ค๋ฅธ yarn ์ธ์Šคํ„ด์Šค๊ฐ€ ์ดˆ๊ธฐ ์ธ์Šคํ„ด์Šค๊ฐ€ ์™„๋ฃŒ ๋  ๋•Œ๊นŒ์ง€ ์‹คํ–‰๋˜์ง€ ์•Š๋„๋กํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ (๋‹น์‹ ์˜ ๋ฌ˜์‚ฌ๊ฐ€ ์•„๋‹ˆ๋ผ) ๋‹น์‹ ์ด ๋งํ•˜๋Š” ๊ฒƒ์€ "์˜ˆ์ƒ๋Œ€๋กœ ์ž‘๋™ํ•œ๋‹ค"๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋“ค๋ฆฝ๋‹ˆ๋‹ค.

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

"๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์‹ค์„ ์™„์ „ํžˆ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ฒŒ ๋งŒ๋“ ๋‹ค"์™€ "2 ๋…„ ๋™์•ˆ ์—ด๋ ค์žˆ๋‹ค"๋ผ๋Š” ์ž์‹ ์˜ ๋ฌธ์žฅ์˜ ๋‚ด๋ถ€ ๋ชจ์ˆœ์— ๋Œ€ํ•ด ์ž ์‹œ ์ƒ๊ฐํ•ด๋ณด์‹ญ์‹œ์˜ค. ์ด๋ฒˆ ํ˜ธ์—๋Š” 5 ๋ช…์˜ Yarn ๋ฉ”์ธํ…Œ์ด๋„ˆ์™€ ์ด 138 ๊ฐœ์˜ ๋Œ“๊ธ€์ด ํฌํ•จ ๋œ 56 ๋ช…์˜ ์ฐธ๊ฐ€์ž ๋งŒ์ด ์ฐธ์—ฌํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ๋Œ€๋ถ€๋ถ„์ด ๊ฐ™์€ ์ฃผ์ œ๋ฅผ ๋Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ "๋งŽ์€ ์‚ฌ๋žŒ"์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ _ ์ผ๋ถ€ _ ์‚ฌ๋žŒ์ด๊ณ  ๊ทธ๋“ค์—๊ฒŒ ์ค‘์š”ํ•˜๋‹ค๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ €๋Š” ๊ทธ๋“ค ์ค‘ ๋ˆ„๊ตฌ๋„ ์ฝ”๋“œ ์ˆ˜์ • ํ•œ ์ค„์„ ๋ณด๋‚ด๋Š” ๋ฐ ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š๊ณ  ์™„์ „ํžˆ ์ œ๊ณต๋˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด์— ๋Œ€ํ•œ ์ˆ˜์ •์„ ์š”๊ตฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์—๊ฒŒ ๋ฌด๋ฃŒ์ž…๋‹ˆ๋‹ค.

@cinderblock

๋‚ด ์ง€์†์„ฑ์„ ์šฉ์„œํ•˜์ง€๋งŒ ๋ฎคํ…์Šค ์˜ต์…˜์ด ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐ์ฑ…์ธ์ง€ ์—ฌ์ „ํžˆ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋ˆ๊ธฐ์™€ ๊ด€๋ จํ•˜์—ฌ ์šฉ์„œํ•  ๊ฒƒ์ด ์—†์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๊ณ  ํ•  ๋•Œ ์ถ•ํ•˜ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. :)

๋‚˜๋Š” yarn --mutex ...๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ํ•ด๋‹น ์˜ต์…˜์„ ํ•˜์œ„ ์ธ์Šคํ„ด์Šค์— ์ „๋‹ฌํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค (์˜ˆ : make๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—…).

๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ์ „ํ•ด์ง€๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋˜ํ•œ ๋‚ด .yarnrc ํŒŒ์ผ์— --install.mutex ๋„คํŠธ์›Œํฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ์ œ์•ˆ์„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค (๋™์ผํ•œ ์˜ค๋ฅ˜). --verbose๋Š” ์˜ต์…˜์ด๋กœ๋“œ๋˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

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

๋‹ค๋ฅธ ๋ฐฉํ–ฅ์—์„œ ์˜ฌ ์ˆ˜ ์žˆ์„๊นŒ์š”? npm์ด ์•„๋‹Œ ์–€์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? npm์— ์™œ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๊นŒ?

Yarn๊ณผ npm์ด ์ž‘๋™ ๋ฐฉ์‹์ด ๋„ˆ๋ฌด ๋‹ค๋ฅด๋‹ค๋Š” ๋‹ค์–‘ํ•œ ์ƒ๊ฐ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ์‹ค์ œ๋กœ ์ ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ž์ฒด ์„ค์น˜์˜ ์ผ๋ถ€๋กœ ์›์‚ฌ ์„ค์น˜๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•˜๋Š” ํŒจํ‚ค์ง€๋ฅผ ์‹๋ณ„ ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. yarn ์‹คํ–‰ ํŒŒ์ผ์„ ํ˜ธ์ถœ ์†Œ์Šค, cwd ๋ฐ ์ „๋‹ฌ ๋œ ๋ชจ๋“  ์ธ์ˆ˜๋ฅผ ๊ธฐ๋กํ•œ ๋‹ค์Œ ํ‰์†Œ์™€ ๊ฐ™์ด yarn์„ ์‹คํ–‰ํ•˜์—ฌ ์œ ์šฉํ•œ ๋””๋ฒ„๊ทธ ์ •๋ณด๋ฅผ ์–ป๊ณ  ๊ฑฐ๊ธฐ์—์„œ ๊ณ„์†ํ•˜๋Š” bash ์Šคํฌ๋ฆฝํŠธ๋กœ ๋Œ€์ฒด ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๊ถ๊ทน์  ์ธ ํ•ด๊ฒฐ์ฑ…์€ ์•ž์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ๋™์‹œ์„ฑ ์นœํ™”์  ์ธ ์บ์‹œ ๊ตฌํ˜„์ด์ง€๋งŒ ๋” ๋งŽ์€ ๋””๋ฒ„๊น… ์ •๋ณด๋ฅผ ํ†ตํ•ด ๋” ์ €๋ ดํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด @cinderblock ๊ณผ ํ˜‘๋ ฅ ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋Œ€๋‹จํžˆ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๊ถ๊ทน์  ์ธ ํ•ด๊ฒฐ์ฑ…์€ ์•ž์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ๋™์‹œ์„ฑ ์นœํ™”์  ์ธ ์บ์‹œ ๊ตฌํ˜„์ด์ง€๋งŒ ๋” ๋งŽ์€ ๋””๋ฒ„๊น… ์ •๋ณด๋ฅผ ํ†ตํ•ด ๋” ์ €๋ ดํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

@BYK ์˜ค! ๋‚˜๋Š” ํ•˜์œ„ ํŒจํ‚ค์ง€๊ฐ€ ์Šคํฌ๋ฆฝํŠธ์—์„œ yarn ... ๋ฅผ ํ˜ธ์ถœ ํ•  ๊ฐ€๋Šฅ์„ฑ์„ ๊ณ ๋ คํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. npm install ์ด ์‹คํŒจํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” ์ข…์†์„ฑ์ด yarn ... ์‹คํ–‰ํ•  ๋•Œ ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค ๋งŒ ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹ญ๋‹ˆ๊นŒ?

๋‚˜๋Š” ๋‹ฌ๋ฆฌ๊ธฐ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

yarn cache clean
rm ./yarn.lock
yarn install

๊ทธ๋Ÿฌ๋‚˜์ด ํ”„๋กœ์„ธ์Šค๋Š” a) ๋” ์ด์ƒ ์บ์‹œ๊ฐ€์—†๊ณ  ์ž ๊ธˆ ํŒŒ์ผ์ด ์ œ๊ฑฐ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ํŒจํ‚ค์ง€๋ฅผ ๋‹ค์‹œ ๋‹ค์šด๋กœ๋“œํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ž˜ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.

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

@BYK

Tere๋Š” 5 ๋ช…์˜ Yarn ๊ด€๋ฆฌ์ž์™€ ์ด 138 ๊ฐœ์˜ ๋Œ“๊ธ€์„ ํฌํ•จํ•˜์—ฌ์ด ๋ฌธ์ œ์— 56 ๋ช…์— ๋ถˆ๊ณผํ•˜๋ฉฐ, ๋Œ€๋ถ€๋ถ„์ด ๊ฐ™์€ ์ฃผ์ œ๋ฅผ ๋Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ด repo์˜ ๊ฒฝ์šฐ ๊ฝค ๋†’์€ ์ˆซ์ž ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๋ฏธํ•ด๊ฒฐ ์ด์Šˆ์™€ ๋งˆ๊ฐ ์ด์Šˆ ์ค‘์—์„œ ๊ฐ€์žฅ ๋†’์€ ๋Œ“๊ธ€ ์ˆ˜์ด๋ฉฐ ์ฐธ์—ฌ์ž ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ๋งŽ์Šต๋‹ˆ๋‹ค.

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

์ด๊ฒƒ์€ "๋งŽ์€ ์‚ฌ๋žŒ๋“ค"์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋ช‡๋ช‡ ์‚ฌ๋žŒ๋“ค์ด๊ณ  ๊ทธ๋“ค์—๊ฒŒ ์ค‘์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ €๋Š” ๊ทธ๋“ค ์ค‘ ์–ด๋Š ๋ˆ„๊ตฌ๋„ ์ฝ”๋“œ ์ˆ˜์ • ํ•œ ์ค„์„ ๋ณด๋‚ด๊ณ  ์™„์ „ํžˆ ์ œ๊ณต๋˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด์— ๋Œ€ํ•œ ์ˆ˜์ •์„ ์š”๊ตฌํ•˜๋Š” ๊ฒƒ์„ ์ค‘์š”ํ•˜๊ฒŒ ์—ฌ๊ธฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์—๊ฒŒ ๋ฌด๋ฃŒ์ž…๋‹ˆ๋‹ค.

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

์ฆ‰, ๋น ๋ฅด๊ณ  ๊ฐ„๋‹จํ•œ ํ•œ ์ค„ ์ˆ˜์ •์ด ํ”„๋กœ์ ํŠธ์˜ ๋‚ด๋ถ€ ์ž‘์—…์— ์ต์ˆ™ํ•˜์ง€ ์•Š์€ ์‚ฌ๋žŒ์—๊ฒŒ๋Š” ๋ฉฐ์น ์— ๊ฑธ์นœ ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ์— ์กด์žฌํ•˜๋Š” ์•”์‹œ ์  ์ •์ฑ…์„ ์–ธ๊ธ‰ํ•˜๊ธฐ ์ „์ž…๋‹ˆ๋‹ค. ๋ช‡ ๊ฐ€์ง€ ํ”„๋กœํ† ์ฝœ์„ ๋”ฐ๋ฅด์ง€ ์•Š์•˜๊ฑฐ๋‚˜, ์˜ฌ๋ฐ”๋ฅธ ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜, ์˜ฌ๋ฐ”๋ฅธ ์‚ฌ์–‘์„ ๋”ฐ๋ฅด์ง€ ์•Š์•˜๊ฑฐ๋‚˜, ๋ฌธ์„œํ™”๋˜์ง€ ์•Š์€ ์ฝ”๋”ฉ ํ‘œ์ค€์„ ์ˆ˜์ •ํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์–‘ํ•œ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ์—์„œ ์ตœ์†Œํ•œ ๋ช‡ ๊ฐœ์˜ PR์ด ๊ฑฐ๋ถ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์™ธ๋ถ€์ธ์œผ๋กœ์„œ ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์— ์˜๋ฏธ์žˆ๊ฒŒ ๊ธฐ์—ฌํ•˜๋Š” ๊ฒƒ์€ ๋„์ „์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ์ •๋ง๋กœ ๋‹น์‹ ์—๊ฒŒ ํ•œ ์ค„์งœ๋ฆฌ ์ˆ˜์ •์ด๋ผ๋ฉด, ๊ทธ๊ฒƒ์„ํ•˜์ง€ ์•Š๋Š” ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์„ ๋น„ํŒํ•˜๋Š” ๊ธด ๊ฒŒ์‹œ๋ฌผ์„ ์ž‘์„ฑํ•˜๋Š” ๋Œ€์‹  ์ˆ˜์ •์„ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ๋” ๋น ๋ฅด์ง€ ์•Š์Šต๋‹ˆ๊นŒ?

์ž์ฒด ์„ค์น˜์˜ ์ผ๋ถ€๋กœ ์›์‚ฌ ์„ค์น˜๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•˜๋Š” ํŒจํ‚ค์ง€๋ฅผ ์‹๋ณ„ ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์— ์ด๋Ÿฐ ์ข…๋ฅ˜์˜ ๋™์ž‘์„ ๋‚˜ํƒ€๋‚ด๋Š” ํŒจํ‚ค์ง€์˜ ์˜ˆ๊ฐ€ ์žˆ์ง€๋งŒ yarn install ์ด (๊ฐ€) ํ‘œ์‹œ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ( bob build ๊ฐ€ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๋Š” ํ•œ,์ด ๋ฌธ์ œ๋Š” ๋ช…๋ น์€ "prepare": "node ./scripts/generate-mappings", )์ž…๋‹ˆ๋‹ค.

๊ถ๊ทน์  ์ธ ํ•ด๊ฒฐ์ฑ…์€ ์•ž์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ๋™์‹œ์„ฑ ์นœํ™”์  ์ธ ์บ์‹œ ๊ตฌํ˜„์ด์ง€๋งŒ ๋” ๋งŽ์€ ๋””๋ฒ„๊น… ์ •๋ณด๋ฅผ ํ†ตํ•ด ๋” ์ €๋ ดํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌํ•œ ์ƒํ™ฉ์ด ๊ฐ์ง€๋˜๋ฉด (๊ฐ์ง€ ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ๊ฐ€์ • ํ•  ๋•Œ) ๊ฒฝ๊ณ ๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๋™์‹œ์„ฑ ์นœํ™”์  ์ธ ์บ์‹œ๋Š” ์ ์–ด๋„ ํ•œ ์–€ ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ตฌ์„ฑ์›์ด ์ง‘์ค‘์ ์œผ๋กœ ๋…ธ๋ ฅํ•ด์•ผํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

์—…๋ฐ์ดํŠธ ๋Š” ์ž‘๋™ํ•˜๋Š” ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค .... git ํ•˜์œ„ ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•œ ๋‹ค์Œ ํŒจํ‚ค์ง€์˜ ์œ„์น˜๋ฅผ โ€‹โ€‹๋กœ์ปฌ ํด๋”๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด์ƒ์ ์ด์ง€๋Š” ์•Š์ง€๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

CircleCI์—์„œ๋„์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉฐ ํฐ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๋ฌธ์ œ๋Š” github.com ๋ฐ Linux (OSX์—์„œ ์ž‘๋™)์— ํ˜ธ์ŠคํŒ… ๋œ ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ ๊ด€๋ จ๋œ ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. mutex ๋ฐ network-concurrency ์˜ต์…˜์€ ์•„๋ฌด ์ž‘์—…๋„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

"my-js-lib": " ssh : //[email protected] : dgobaud / my-js-ib # 1.0.0"

์ œ๊ฑฐํ•˜๋ฉด CircleCI์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋กœ์ปฌ์—์„œ๋Š” ์›์‚ฌ 1.17.0์„ ์‚ฌ์šฉํ•˜์—ฌ OSX์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๋…ธ๋“œ 12.8.1 ๋ฐ ์›์‚ฌ 1.17.3 (์› ์ด๋ฏธ์ง€ circleci / node : latest)์ด์žˆ๋Š” CircleCI์—์„œ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋˜๋Š” Node 8.15.0 ๋ฐ yarn 1.12.3 (์› ์ด๋ฏธ์ง€ circleci / node : 8.15.0)

#!/bin/bash -eo pipefail
yarn install --mutex network --network-concurrency 1
yarn install v1.12.3
[1/4] Resolving packages...
warning Resolution field "[email protected]" is incompatible with requested version "mixin-deep@^1.2.0"
warning Resolution field "[email protected]" is incompatible with requested version "set-value@^2.0.0"
warning Resolution field "[email protected]" is incompatible with requested version "set-value@^0.4.3"
[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.
[3/4] Linking dependencies...
[4/4] Building fresh packages...
$ cd functions && yarn install
yarn install v1.12.3
[1/5] Validating package.json...
[2/5] Resolving packages...
warning Resolution field "[email protected]" is incompatible with requested version "mixin-deep@^1.2.0"
warning Resolution field "[email protected]" is incompatible with requested version "set-value@^2.0.0"
warning Resolution field "[email protected]" is incompatible with requested version "set-value@^2.0.1"
[3/5] Fetching packages...
[1/5] Validating package.json...
[2/5] Resolving packages...
[3/5] Fetching packages...
error https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: "ENOENT: no such file or directory, chmod '/home/circleci/.cache/yarn/v4/npm-lodash-4.17.15-b447f6670a0455bbfeedd11392eff330ea097548/node_modules/lodash/_arrayReduceRight.js'"
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
info There appears to be trouble with your network connection. Retrying...
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
Exited with code 1

--network-concurrency 1 ์„ฑ๊ณต, --network-concurrency 8 ์‹คํŒจ, circleCI / node : 10

๋ˆ„๊ตฐ๊ฐ€ Yarn์ด EEXIST ๋ฐ EOENT์—์„œ ์‹คํŒจํ•ด์•ผํ•˜๋Š” ์ด์œ ๋ฅผ ์ดํ•ดํ•˜๋„๋ก ๋„์™€ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

EEXIST์˜ ๊ฒฝ์šฐ Yarn์ด ์ด์— ๋Œ€ํ•ด ๊ฒฝ๊ณ  ํ•œ ๋‹ค์Œ ํŒŒ์ผ์„ ์žฌ์ •์˜ ํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•ฉ๋‹ˆ๋‹ค.
EOENT์˜ ๊ฒฝ์šฐ Yarn์ด ๋ˆ„๋ฝ ๋œ ํด๋” (์ผ๋ฐ˜์ ์œผ๋กœ ๋ฌธ์ œ์˜ ์›์ธ)๋ฅผ ์ƒ์„ฑ ํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ๋ถ€์ž‘์šฉ์ด์žˆ์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ์•„๋งˆ๋„์ด ํ–‰๋™์€ ํ”Œ๋ž˜๊ทธ๋กœ ๋” ์—„๊ฒฉํ•ด์งˆ ์ˆ˜์žˆ๋‹ค (๋˜๋Š” ๊ทธ ๋ฐ˜๋Œ€๋กœ).

๊ทธ๋Ÿฌ๋‚˜ ์ด๋Ÿฌํ•œ ์˜ค๋ฅ˜๋ฅผ ์œ ์ง€ํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๊ทธ๋“ค์€ ๋ˆ„๊ตฌ์—๊ฒŒ๋„ ์œ ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@BYK ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค, ๋ฐฉ๊ธˆ ๊ท€ํ•˜์˜ ์˜๊ฒฌ์„ ๋ดค์Šต๋‹ˆ๋‹ค

๊ทธ๋Ÿฐ ๋ฒ„๊ทธ์— ๋Œ€ํ•ด ์•Œ๊ณ  ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋ฏธ๋ณด๊ณ  ๋œ ๊ฒฝ์šฐ ์•Œ๋ ค์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? --mutex ์ž‘๋™ ๋ฐฉ์‹์€ ๋™์ผํ•œ ๋ฎคํ…์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋‹ค๋ฅธ yarn ์ธ์Šคํ„ด์Šค๊ฐ€ ์ดˆ๊ธฐ ์ธ์Šคํ„ด์Šค๊ฐ€ ์™„๋ฃŒ ๋  ๋•Œ๊นŒ์ง€ ์‹คํ–‰๋˜์ง€ ์•Š๋„๋กํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ (๋‹น์‹ ์˜ ๋ฌ˜์‚ฌ๊ฐ€ ์•„๋‹ˆ๋ผ) ๋‹น์‹ ์ด ๋งํ•˜๋Š” ๊ฒƒ์€ "์˜ˆ์ƒ๋Œ€๋กœ ์ž‘๋™ํ•œ๋‹ค"๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋“ค๋ฆฝ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋ฒ„๊ทธ์ž…๋‹ˆ๋‹ค : https://github.com/yarnpkg/yarn/issues/2629#issuecomment -481297806์—์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด https://github.com/yarnpkg/yarn/issues/6650 ์ด ์Šค๋ ˆ๋“œ์˜ "๋” ๋งŽ์€ ๊ธฐ๋ก๋ณด๊ธฐ")

์ด๋ฒˆ ํ˜ธ์—๋Š” 56 ๋ช…์˜ ์ฐธ๊ฐ€์ž ๋งŒ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธ€์Ž„, ๊ทธ๊ฒŒ ๊ณต์ •ํ•œ ์ง€์ ์ด์•ผ

์ด ๋ฒ„๊ทธ๋Š” ์—ฌ์ „ํžˆ yarn v1.19.1์— ์žˆ์Šต๋‹ˆ๋‹ค. ์™œ Yarn Team์ด์ด ๊ท€์ฐฎ์€ ๋ฒ„๊ทธ๋ฅผ ๊ณ ์น˜์ง€ ์•Š๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.
์—ฌ๊ธฐ ๋‚ด .yarnrc ์žˆ์œผ๋ฉฐ ๋„์›€์ด๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

save-prefix ""
--install.check-files true
--add.check-files true
--remove.check-files true
--install.frozen-lockfile true
--add.frozen-lockfile true
--remove.frozen-lockfile true
--install.mutex network
--install.mutex file

๋ฐฉ๊ธˆ npx lerna clean && ./yarn-install-in-loop.sh ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋„์›€์ด๋œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์•Œ๊ฒŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
๋‚ด monorepo์—์„œ ๋ชจ๋“  node_modules ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ •๋ฆฌ (์ œ๊ฑฐ)ํ•˜๋ฉด ๋„์›€์ด๋ฉ๋‹ˆ๋‹ค.

@gitowiec์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ์ปจํ…Œ์ด๋„ˆํ™” ๋œ yarn install ํ˜ธ์ถœ์€ ํŒŒ์ผ ์‹œ์Šคํ…œ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒฝ์ฃผํ•˜๋Š” ๊ฒƒ์ด๋ฉฐ yarn ์„ ๋‹จ์ผ .yarnrc ํŒŒ์ผ๋กœ ์ œํ•œํ•˜๋ ค๋Š” ๋ชจ๋“  ์‹œ๋„๊ฐ€ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. ํฌ๊ธฐํ•˜๊ณ  npm ๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค.

๋‚ด ๋ฌธ์ œ๊ฐ€ ์—ฌ๋Ÿฌ ์ˆ˜์ค€ (์˜ˆ : ๋‚ด ํŒจํ‚ค์ง€-> git ํŒจํ‚ค์ง€-> git ํŒจํ‚ค์ง€-> git ํŒจํ‚ค์ง€)์„ ํ†ตํ•ด git ์ €์žฅ์†Œ์˜ ํŒจํ‚ค์ง€ ์ข…์†์„ฑ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์„ค์น˜ ์ค‘ ์บ์‹œ๋Š” npm์— ๋น„ํ•ด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค (npm์€ ํ•œ ๋ฒˆ๋งŒ ์ฒดํฌ ์•„์›ƒํ–ˆ์ง€๋งŒ ๋™์ผํ•œ ์„ค์น˜ ์ค‘์— ๋™์ผํ•œ ํŒจํ‚ค์ง€๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ์–€ ์ฒดํฌ ์•„์›ƒ).
npm์œผ๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค. v6๋ถ€ํ„ฐ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์œ„์—์„œ ์–ธ๊ธ‰ ํ•œ์ด ๋ฌธ์ œ๋Š” ์—ฌ์ „ํžˆ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์šฐ๋ฆฌ๊ฐ€ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผ ํ•  ์ˆ˜ ์žˆ๋„๋ก circleci์— ๋Œ€ํ•œ config.yml ์ž…๋‹ˆ๋‹ค.
- run: name: Yarn Install source ~/setyarnpath.sh i=5; until yarn; do echo "Yarn failed. Retrying..."; ((i--)); if [[ "$i" == '0' ]]; then break; fi; done

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๊ฒช๊ณ  ์žˆ์—ˆ๋‹ค. ๋‚ด ์ฝ”๋“œ์™€ node_modules๊ฐ€ ๋‚ด๋ถ€์—์žˆ๋Š” ํ˜ธ์ŠคํŠธ [1] ๋ณผ๋ฅจ์œผ๋กœ macOS ๋ฐ docker-compose ์‚ฌ์šฉ.

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

๋‚ด docker-compose ํŒŒ์ผ์ด ๋‹ค์Œ์—์„œ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

services:
  ...
  web:
    build: .
    volumes:
      - .:/home/example
    ports:
      - "3000:3000"
    ...

์—:

services:
  ...
  web:
    build: .
    volumes:
      - .:/home/example
      - /home/example/node_modules
    ports:
      - "3000:3000"
    ...

[1] https://success.docker.com/article/different-types-of-volumes

์ตœ๊ทผ yarn ์—์„œ์ด ๋ฌธ์ œ์˜ ์ƒˆ๋กœ์šด ์ฆ์ƒ์ด๋ผ๊ณ  ์ƒ๊ฐ๋˜๋Š” ์ƒˆ๋กœ์šด ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

yarn stdout [1/4] Resolving packages...
yarn stdout [2/4] Fetching packages...
yarn stderr error https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: "EEXIST: file already exists, mkdir '/home/pi/.cache/yarn/v6/npm-prettier-1.19.1-f7d7f5ff8a9cd872a7be4ca142095956a60797cb-integrity/node_modules/prettier'"
yarn stdout info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
yarn stderr Process stalled
yarn stderr Active handles:
yarn stderr   - Socket
yarn stderr   - Socket
yarn stderr   - Socket
yarn stderr   - TLSSocket
yarn stderr   - TLSSocket
yarn stderr   - TLSSocket

์ฐธ๊ณ  : yarn stderr/out ๋Š” ๋‚ด ํ”„๋กœ๊ทธ๋žจ์ด ๋‚ด ํ™˜๊ฒฝ์—์„œ yarn์˜ ์ถœ๋ ฅ์— ์ œ๊ณตํ•˜๋Š” ์ ‘๋‘์‚ฌ์ž…๋‹ˆ๋‹ค.

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

์ฐธ๊ณ ๋กœ ์ด๊ฒƒ์€ yarn ์บ์‹œ์™€ node_modules ์ง€์šฐ ๊ฑฐ๋‚˜ ํŠน์ • git ํŒจํ‚ค์ง€ ์ข…์†์„ฑ์„ ์—…๋ฐ์ดํŠธ ํ•œ ํ›„ ์„ค์น˜์‹œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

ํŠน์ • ํŒจํ‚ค์ง€ ์ข…์†์„ฑ์€ ๋‚ด๊ฐ€ ์‹ค์ œ๋กœ ์˜์กดํ•˜๋Š” ๋‹ค๋ฅธ git ํŒจํ‚ค์ง€์˜ ์ข…์†์„ฑ์ž…๋‹ˆ๋‹ค (๋‘˜ ๋‹ค TypeScript์— ์˜์กดํ•˜๋Š” ์œ ์‚ฌํ•œ prepare ๋‹จ๊ณ„๊ฐ€ ์žˆ์Œ). #master ์—์„œ ์ด๋Ÿฌํ•œ ์ข…์†์„ฑ์„ ๋ณ€๊ฒฝํ•˜๊ณ  yarn upgrade --latest ์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค (๋ฐ ํ›„์† yarn install .

ํ•ด๋‹น ํ•˜์œ„ ํŒจํ‚ค์ง€๋ฅผ ์ˆ˜๋™์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜๋ฉด (์™„์ „ํžˆ ๋ณ„๋„์˜ node_modules ํด๋”๋กœ!) yarn install ๊ฐ€ ๋‹ค์‹œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์–€์ด ์‹ค์ˆ˜๋กœ ๋‘ ํ”„๋กœ์„ธ์Šค์—์„œ ๋™์‹œ์— ์บ์‹œ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์ด๋กœ ์ธํ•ด์ด ๋ฌธ์ œ์—์„œ ๋ณผ ์ˆ˜์žˆ๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ git ์˜์กด์„ฑ์— ์˜ํ•ด ์„ค์น˜๋œ 2 ๊ฐœ ์ด์ƒ์˜ ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๋‚˜์—๊ฒŒ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ๋“  prepare ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋™์ผํ•œ ํŒจํ‚ค์ง€์— ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋งˆ์ง€๋ง‰ ๋ฆด๋ฆฌ์Šค์—์„œ๋„ npm์œผ๋กœ ์‹คํŒจํ•˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

Dependencies:
A -> B & C (both by git, with prepare script)
B -> C (by git, with prepare script)

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

์ง€๊ธˆ๋ณด๊ณ ์žˆ๋Š” ์œ ์ผํ•œ ํ•ด๊ฒฐ์ฑ…์€ npm์œผ๋กœ ์ „ํ™˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@gregory ํ•„์ž์˜ ๊ฒฝ์šฐ 2019 ๋…„ 6 ์›”์— ์› ์‚ฌ๋Š” 2 ~ 4 ๋ฒˆ์˜ ์žฌ์‹คํ–‰์ด ํ•„์š”ํ•˜๋”๋ผ๋„ ํ•ญ์ƒ ํ•„์š”ํ•œ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์„ ๊ธฐ์–ตํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด๋Ÿฌํ•œ ์žฌ์‹คํ–‰์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์› ์‚ฌ๋Š” ์—ฌ์ „ํžˆ npm๋ณด๋‹ค ๋น ๋ฆ…๋‹ˆ๋‹ค.

๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ yarn์ด ์™„๋ฃŒ ๋  ๋•Œ๊นŒ์ง€ ๋‹ค์‹œ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

while ! yarn install; do echo --- ; done

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

while ! yarn install; do echo --- ; done

์œ ์ผํ•œ ํ•ด๊ฒฐ์ฑ…์€ ๋ฌด์ฐจ๋ณ„ ๋Œ€์ž…์ด๋ผ๋Š” ์‚ฌ์‹ค์— ์ •๋ง ์Šฌํ”„๋‹ค ...

cc @arcanis

ํ›„์† ์‹ค ์„ค์น˜๋ฅผ ๋‘ ๋ฒˆ ์‹œ๋„ํ•˜๋ฉด ์ฒ˜์Œ์—๋Š” ์ž‘๋™ํ•˜์ง€๋งŒ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

๋น ๋ฅด๊ณ  ์•ˆ์ •์ ์ด๋ฉฐ ์•ˆ์ „ํ•œ ์ข…์†์„ฑ ๊ด€๋ฆฌ.

๊ทธ๊ฒƒ์€ ์‹ ๋ขฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
```[3/5] ํŒจํ‚ค์ง€ ๊ฐ€์ ธ ์˜ค๋Š” ์ค‘ ...
์˜ค๋ฅ˜ https://registry.yarnpkg.com/lz4/-/lz4-0.6.3.tgz : ์ •์˜๋˜์ง€ ์•Š์€ tar ์ฝ˜ํ…์ธ  ์ถ”์ถœ์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ์ด ์†์ƒ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. "ENOENT : ํ•ด๋‹น ํŒŒ์ผ ๋˜๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. '/ app /.cache/yarn/v6/npm-lz4-0.6.3-78df6bb69a36d7db6c2e849494876ba6e38e66d6-integrity/node_modules/lz4/build/Release/obj.target/build/Release/lz4.node '->'/app/.cache/yarn /v6/npm-lz4-0.6.3-78
df6bb69a36d7db6c2e849494876ba6e38e66d6-integrity / node_modules / lz4 / build / Release / obj.target / lz4.node ' "
info์ด ๋ช…๋ น์— ๋Œ€ํ•œ ์„ค๋ช…์„œ๋ฅผ ๋ณด๋ ค๋ฉด https://yarnpkg.com/en/docs/cli/install ์„ ๋ฐฉ๋ฌธ
[1/5] package.json ํ™•์ธ ์ค‘ ...
[2/5] ํŒจํ‚ค์ง€ ํ•ด๊ฒฐ ์ค‘ ...
[3/5] ํŒจํ‚ค์ง€ ๊ฐ€์ ธ ์˜ค๋Š” ์ค‘ ...
์ •๋ณด ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ์— ๋ฌธ์ œ๊ฐ€์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์žฌ์‹œ๋„ ์ค‘ ...
info [email protected] : "linux"ํ”Œ๋žซํผ์€์ด ๋ชจ๋“ˆ๊ณผ ํ˜ธํ™˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ •๋ณด " [email protected] "๋Š” ์„ ํƒ์  ์ข…์†์„ฑ์ด๋ฉฐ ํ˜ธํ™˜์„ฑ ๊ฒ€์‚ฌ์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค. ์„ค์น˜์—์„œ ์ œ์™ธํ•ฉ๋‹ˆ๋‹ค.
info [email protected] : "linux"ํ”Œ๋žซํผ์€์ด ๋ชจ๋“ˆ๊ณผ ํ˜ธํ™˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ •๋ณด " [email protected] "๋Š” ์„ ํƒ์  ์ข…์†์„ฑ์ด๋ฉฐ ํ˜ธํ™˜์„ฑ ๊ฒ€์‚ฌ์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค. ์„ค์น˜์—์„œ ์ œ์™ธํ•ฉ๋‹ˆ๋‹ค.
[4/5] ์ข…์†์„ฑ ์—ฐ๊ฒฐ ...
[5/5] ์ƒˆ๋กœ์šด ํŒจํ‚ค์ง€ ๋งŒ๋“ค๊ธฐ ...
$ npm run prepare : mjs && npm run prepare : js

[email protected] ์ค€๋น„ : mjs /app/.cache/yarn/v6/.tmp/43563e016bb56318ebd76037a0f6ce2f.73d5f4dbffab6f6a27f26c6611e32662c98c2891.prepare
BABEL_ESM = 1 babel src -d. -ํŒŒ์ผ ํ™•์žฅ์ž ์œ ์ง€

Babel๋กœ 39 ๊ฐœ์˜ ํŒŒ์ผ์„ ์„ฑ๊ณต์ ์œผ๋กœ ์ปดํŒŒ์ผํ–ˆ์Šต๋‹ˆ๋‹ค.

[email protected] prepare : js /app/.cache/yarn/v6/.tmp/43563e016bb56318ebd76037a0f6ce2f.73d5f4dbffab6f6a27f26c6611e32662c98c2891.prepare
๋ฐ”๋ฒจ src -d.

Babel๋กœ 39 ๊ฐœ์˜ ํŒŒ์ผ์„ ์„ฑ๊ณต์ ์œผ๋กœ ์ปดํŒŒ์ผํ–ˆ์Šต๋‹ˆ๋‹ค.


[3/5] ํŒจํ‚ค์ง€ ๊ฐ€์ ธ ์˜ค๋Š” ์ค‘ ...
์˜ค๋ฅ˜ https://registry.yarnpkg.com/lz4/-/lz4-0.6.3.tgz : ์ •์˜๋˜์ง€ ์•Š์€ tar ์ฝ˜ํ…์ธ  ์ถ”์ถœ์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ์ด ์†์ƒ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. "ENOENT : ํ•ด๋‹น ํŒŒ์ผ ๋˜๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. '/ app /.cache/yarn/v6/npm-lz4-0.6.3-78df6bb69a36d7db6c2e849494876ba6e38e66d6-integrity/node_modules/lz4/build/Release/obj.target/build/Release/lz4.node '->'/app/.cache/yarn /v6/npm-lz4-0.6.3-78
df6bb69a36d7db6c2e849494876ba6e38e66d6-integrity / node_modules / lz4 / build / Release / obj.target / lz4.node ' "
info์ด ๋ช…๋ น์— ๋Œ€ํ•œ ์„ค๋ช…์„œ๋ฅผ ๋ณด๋ ค๋ฉด https://yarnpkg.com/en/docs/cli/install ์„ ๋ฐฉ๋ฌธ
์ •๋ณด ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ์— ๋ฌธ์ œ๊ฐ€์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์žฌ์‹œ๋„ ์ค‘ ...

```

์›์‚ฌ๊ฐ€ ์™œ ์ „ํ™”๋ฅผ ๊ฑธ ์—ˆ๋Š”์ง€ ์•„๋Š” ์‚ฌ๋žŒ์€ ๋ˆ„๊ตฌ๋‚˜

error https://registry.yarnpkg.com/lz4/-/lz4-0.6.3.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: "ENOENT: no such file or directory, link '/app/.cache/yarn/v6/npm-lz4-0.6.3-78df6bb69a36d7db6c2e849494876ba6e38e66d6-integrity/node_modules/lz4/build/Release/obj.target/build/Release/lz4.node' -> '/app/.cache/yarn/v6/npm-lz4-0.6.3-
  df6bb69a36d7db6c2e849494876ba6e38e66d6-integrity/node_modules/lz4/build/Release/obj.target/lz4.node'"

์˜ฌ๋ฐ”๋ฅธ ๊ฒฝ๋กœ๊ฐ€ ์žˆ์–ด์•ผ ํ•  ๋•Œ :

/app/.cache/yarn/v6/npm-lz4-0.6.3-78df6bb69a36d7db6c2e849494876ba6e38e66d6-integrity/node_modules/lz4/build/Release/lz4.node

์–ด๋–ค ์ด์œ ๋กœ ์›์‚ฌ๊ฐ€ obj.target/build/Release/ ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. https://github.com/yarnpkg/yarn/commit/0e7133ca28618513503b4e1d9063f1c18ea318e5 ์™€ ๊ด€๋ จ์ด์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

๋‚˜๋Š” 1.22.4 ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ๋ช‡ ์‹œ๊ฐ„ ๋™์•ˆ์ด ๋ฌธ์ œ์— ๋จธ๋ฌผ๋Ÿฌ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์˜ monorepo์—๋Š” ๋™์ผํ•œ ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์—ฌ๋Ÿฌ ๋ชจ๋“ˆ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ ๋‹ค์Œ์„ ์ ์šฉํ•˜์—ฌ ์ •๋ ฌํ–ˆ์Šต๋‹ˆ๋‹ค.
1) ๋ชจ๋“  ๋ชจ๋“ˆ์—์„œ ๋™์ผํ•œ ๋ฒ„์ „์˜ ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. devDependencies ์—์„œ๋„ ํ™•์‹คํžˆ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
2) ๋ชจ๋“  package.json ํŒŒ์ผ์˜ monorepo์—์žˆ๋Š” ๋ชจ๋“  ๋ฒ„์ „์„ ๊ณ ์ •ํ•ฉ๋‹ˆ๋‹ค.

1.22.4 ์—์„œ ์—ฌ์ „ํžˆ ๋ฌธ์ œ๊ฐ€ ์žˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์›๋ž˜๋Š” mocha ์˜€๊ณ  ๋ชจ๋“  ํŒจํ‚ค์ง€๊ฐ€ ๋™์ผํ•œ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•œ ํ›„ ์ด์ œ camelcase ์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.์ด ์˜ค๋ฅ˜๋Š” ๋‚ด ํ”„๋กœ์ ํŠธ์—์„œ๋„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. yargs , ์•„๋งˆ๋„ Lerna์—์„œ ์˜จ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

error ์˜ˆ๊ธฐ์น˜ ์•Š์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค : "ENOENT : no such file or directory, lstat '/ code / project / src / packages / private-package / node_modules / camelcase'".

ํ•ด๊ฒฐ์ฑ…์ด ์žˆ๋Š”์ง€ ๋ฌผ์–ด๋ด๋„ ๋ ๊นŒ์š”? ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด node_modules 20 ๊ฐœ์™€ yarn.lock ์„ (๋ฅผ) ๊ณ„์† ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ์ฑ…์ด ์žˆ๋Š”์ง€ ๋ฌผ์–ด๋ด๋„ ๋ ๊นŒ์š”? ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด node_modules 20 ๊ฐœ์™€ yarn.lock ์„ (๋ฅผ) ๊ณ„์† ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

์ €๋Š” ๊ฐœ์ธ์ ์œผ๋กœ ์ž‘์—… ๊ณต๊ฐ„ ์ฒ˜๋ฆฌ์™€ ๊ด€๋ จํ•˜์—ฌ lerna๋กœ ์ „ํ™˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ Lerna๊ฐ€ ๋‹จ์ˆœํžˆ Yarn์œผ๋กœ ์ „๋‹ฌ๋œ๋‹ค๋Š” ๊ฒƒ์„ ํ™•์‹คํžˆ ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค.

Ember ํŒจํ‚ค์ง€์— ๋Œ€ํ•ด nohoist ๊ตฌ์„ฑ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ํ™˜๊ฒฝ์€ ์ž‘์—… ๊ณต๊ฐ„๊ณผ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ์ด์ „ ๋ฒ„์ „์˜ Ember๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

    "nohoist": [
      "**/ember-package/*ember*",
      "**/ember-package/*ember*/**",
      "**/ember-package/loader.js"
    ]

์ง€๊ธˆ ์—ฌ๊ธฐ์— ์ตœ์†Œํ•œ์˜ ์žฌํ˜„์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค : https://github.com/yarnpkg/yarn/issues/7212#issuecomment -637978197

yarn.lock ์„ ์‚ญ์ œ ํ•œ ๋‹ค์Œ yarn install ํ–ˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์— ๋‰ด์Šค๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ์›์‚ฌ์˜ ์˜์กด์„ฑ ์„ค์น˜ ์‹คํŒจ๋กœ ์ธํ•ด ๋ชจ๋“  ํŒŒ์ดํ”„ ๋ผ์ธ์ด ์‹คํŒจํ•˜๋ฉด์„œ CI ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ค‘๋‹จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ง๋„ ์•ˆ ๋ผ.

--network-concurrency ํ•˜๋ฉด ์•„๋ฌด๊ฒƒ๋„ ์ˆ˜์ •๋˜์ง€ ์•Š๊ณ  ์ž‘์—…์ด ๊นจ๋—ํ•œ ์‹œ์Šคํ…œ์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค (node_modules ์—†์Œ, yarn .cache ์—†์Œ).

@cadavre ๋ณด์žฅํ•˜์ง€๋Š” ์•Š์ง€๋งŒ v2์—์„œ๋Š” ๋ฌธ์ œ๊ฐ€๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

yarn set version 2 && yarn config set nodeLinker node-modules

https://yarnpkg.com/getting-started/install#per -project-install
https://yarnpkg.com/configuration/yarnrc#nodeLinker

์ด๊ฒƒ์€ ๋‚ด vue ๋ฐ firebase ์ข…์†์„ฑ ์ค‘ ์ผ๋ถ€๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•œ ํ›„ ๋‚˜์—๊ฒŒ๋„ ๋ฐœ์ƒํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๋‚ด CI ๋ฐ ๊ฐœ๋ฐœ ์ปดํ“จํ„ฐ์—์„œ 100 % ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. --network-concurrency 1 ํ•ด๋„ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋””์Šคํฌ ๊ณต๊ฐ„์ด๋‚˜ inode๊ฐ€ ๋ถ€์กฑํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ €๋Š” WSL1์— ์žˆ์Šต๋‹ˆ๋‹ค. ์›์‚ฌ 1.22.4.

์ผ์‹œ์ ์œผ๋กœ ์บ์‹œ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋ณ€๊ฒฝํ•˜์—ฌ ์ˆ˜์ •ํ–ˆ์œผ๋ฉฐ ๋‚˜์ค‘์— ์‚ญ์ œํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜์—๊ฒŒ๋Š” Docker ๋นŒ๋“œ์ž…๋‹ˆ๋‹ค.

RUN yarn install --check-files --cache-folder .ycache && rm -rf .ycache
์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰