Yarn: ์ •์˜๋˜์ง€ ์•Š์€ tar ๋‚ด์šฉ ์ถ”์ถœ ์‹คํŒจ

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

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

ํ˜„์žฌ ํ–‰๋™์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?
๋•Œ๋•Œ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

yarn install v1.9.4
[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 https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: "ENOENT: no such file or directory, chmod '/usr/local/share/.cache/yarn/v2/npm-lodash-4.17.10-1b7793cf7259ea38fb3661d4d38b3260af8ae4e7/_cacheHas.js'"
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
yarn install v1.9.4
[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 https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: "EEXIST: file already exists, mkdir '/usr/local/share/.cache/yarn/v2/npm-lodash-4.17.10-1b7793cf7259ea38fb3661d4d38b3260af8ae4e7'"
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
yarn install v1.9.4
[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 https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: "ENOENT: no such file or directory, chmod '/usr/local/share/.cache/yarn/v2/npm-fbjs-0.8.17-c4d598ead6949112653d6588b01a5cdcd9f90fdd/lib/resolveImmediate.js'"
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command

์ด ์˜ค๋ฅ˜์˜ ๋ฐœ์ƒ์€ ์–ด๋ ค์šด ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. ํ•ญ์ƒ ์‹คํŒจํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋ฉฐ ๋™์ผํ•œ ์ข…์†์„ฑ์œผ๋กœ ํ•ญ์ƒ ์‹คํŒจํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. 3-5 ๋ฒˆ์˜ ์‹œ๋„ ํ›„์— ์„ค์น˜๊ฐ€ ์„ฑ๊ณตํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ ๋™์ž‘์ด ๋ฒ„๊ทธ ์ธ ๊ฒฝ์šฐ ์žฌํ˜„ ๋‹จ๊ณ„๋ฅผ ์ œ๊ณตํ•˜์‹ญ์‹œ์˜ค.
๋ฒ ์–ด ๋ฉ”ํƒˆ ๋ฐ node:8-alpine ๋„์ปค ์ปจํ…Œ์ด๋„ˆ์— ์ข…์†์„ฑ์„ ์„ค์น˜ํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‘˜ ๋‹ค ๋•Œ๋•Œ๋กœ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์บ๋‚˜๋‹ค ๋ชฌํŠธ๋ฆฌ์˜ฌ์˜ ๊ฐœ์ธ ๋””๋ฐ”์ด์Šค (Mac OS X10.13), AWS EC2 ์ธ์Šคํ„ด์Šค (Ubuntu 18.04), GCE ์ธ์Šคํ„ด์Šค (Ubuntu 16.04) ๋ฐ ํ”„๋ž‘์Šค์˜ ํ”„๋กœ๋•์…˜ ์„œ๋ฒ„ (Debian 8)์—์„œ์ด๋ฅผ ํ…Œ์ŠคํŠธํ–ˆ์Šต๋‹ˆ๋‹ค. . ๊ทธ๋“ค ๊ฐ๊ฐ์€ ๋•Œ๋•Œ๋กœ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋˜ํ•œ yarn.lock ์œ ๋ฌด์— ๊ด€๊ณ„์—†์ด ์„ค์น˜๋ฅผ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋•Œ๋•Œ๋กœ์ด ์š”์  ์—์„œ ๋ฌธ์ œ package.json ๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค. ์ข…์†์„ฑ์ด ์ ์€ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์˜ˆ์ƒ๋˜๋Š” ๋™์ž‘์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?
npm install ๋˜๋Š” npm ci ์™€ ๊ฐ™์ด tar ๋˜๋Š” ์บ์‹ฑ ์˜ค๋ฅ˜์—†์ด ๊ฒฐ์ •์ ์œผ๋กœ ์„ฑ๊ณตํ•œ ๋ชจ๋“  ํŒจํ‚ค์ง€์˜ ์„ฑ๊ณต์ ์ธ ์„ค์น˜.

node.js, yarn ๋ฐ ์šด์˜ ์ฒด์ œ ๋ฒ„์ „์„ ์–ธ๊ธ‰ํ•˜์‹ญ์‹œ์˜ค.
๋‹ค์Œ ๋ฒ„์ „์œผ๋กœ ํ…Œ์ŠคํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
๋…ธ๋“œ : 8 LTS, 10
์›์‚ฌ : 1.9.2, 1.9.4
์šด์˜์ฒด์ œ : Ubuntu 18.04 LTS, Ubuntu 16.04 LTS, Debian 8, Mac OSX 10.13
๋ ˆ์ง€์ŠคํŠธ๋ฆฌ : registry.yarnpkg.com , registry.npmjs.org , ๊ฐœ์ธ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ

์ถ”๊ฐ€ ์ •๋ณด๊ฐ€ ํ•„์š”ํ•˜๋ฉด ์ฃผ์ €ํ•˜์ง€ ๋ง๊ณ  ์š”์ฒญํ•˜์‹ญ์‹œ์˜ค. FWIW, ๋„คํŠธ์›Œํฌ ๋™์‹œ์„ฑ์„ ์ค„์ด๋ฉด ์„ฑ๊ณต๋ฅ ์ด ์•ฝ๊ฐ„ ๋” ๋†’์•„์ง€๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ ์˜ค๋ฅ˜๊ฐ€ ๊ด€๋ จ๋˜์–ด ์žˆ๋‹ค๋Š” ๊ฒฐ๋ก ์„ ๋‚ด๋ฆด๋งŒํผ ์ผ๊ด€ ์ ์ด ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์กฐ์‚ฌ ํ•  ์˜์—ญ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•ˆํƒ€๊น๊ฒŒ๋„ ๋ฉฐ์น  ๋™์•ˆ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ ํ•œ ํ›„์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์„ ํ• ์• ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋งˆ์ง€ ๋ชปํ•ด ์šฐ๋ฆฌ์˜ ๋ชจ๋“  CI ๋นŒ๋“œ๋ฅผ npm install / npm ci ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์‹œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•ด์•ผํ–ˆ์Šต๋‹ˆ๋‹ค :(

cat-bug triaged

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

์ œ ๊ฒฝ์šฐ์—๋Š” ~/.npmrc ์ƒ์„ฑ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ yarn.lock ์žฌ์ƒ์„ฑ์€ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ„๋‹จํžˆ,

$ rm yarn.lock && yarn

ํŽธ์ง‘ :์ด ๋ฌธ์ œ์— ๋‘ ๋ฒˆ๋งŒ ์ง๋ฉดํ•˜์—ฌ ์—ฌ๊ธฐ์— ์ฐฉ๋ฅ™ํ–ˆ์Šต๋‹ˆ๋‹ค. :๋ฏธ์†Œ:

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

๊ฐ™์€ ๋ฌธ์ œ, ๋‚ด CI๋„ ์ฐจ๋‹จํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์ตœ๊ทผ์— 1.9.2๋กœ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค.

@opiation ์˜ค๋ฅ˜๋Š” ์‹ค์ œ๋กœ ๋ฌด์ž‘์œ„์ด์ง€๋งŒ ์›์ธ์„ ์ฐพ์•˜์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰์— .git ์—†์ด package.json์— ๋จผ git URL์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๊ทธ์ค‘ ๋‘ ๊ฐœ๊ฐ€ ์žˆ์—ˆ๊ณ  .git ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€์— ์ด๊ฒƒ์ด ๋ฌธ์ œ๋ผ๊ณ  ์ง์ ‘ ํ‘œ์‹œํ•˜์ง€ ์•Š๋Š” ์ด์œ ๊ฐ€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ๊ด€๋ จ์ด์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค : https://github.com/yarnpkg/yarn/issues/5536

@adrienharnay , ์—ฌ๊ธฐ์— ๋‚ด๊ฐ€ ์‚ฌ์šฉํ•œ package.json ์žˆ์Šต๋‹ˆ๋‹ค. github ์ข…์†์„ฑ์ด ํ•˜๋‚˜ ๋ฟ์ด๋ฉฐ ๊ทธ๊ฒƒ ์—†์ด๋„ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ท€ํ•˜์˜ ์ œ์•ˆ์„ ์˜คํ•ดํ•˜์ง€ ์•Š๋Š” ํ•œ .git ๋ฅผ ์ž์‹์ด ์•„๋‹Œ ์ข…์†์„ฑ์— ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋จผ ๋‹จ์–ด๋Š” ์˜ณ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. Git์—์„œ ์„ค์น˜๋œ ํŒจํ‚ค์ง€๋ฅผ ์˜๋ฏธํ–ˆ์Šต๋‹ˆ๋‹ค ๐Ÿ™‚

์ด๊ฒƒ์„ ์‹œ๋„ํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

"storybook-addon-markdown": "https://github.com/mihalik/storybook-addon-markdown.git"

์ด์ „ ์˜๊ฒฌ์— ๋”ฐ๋ผ storybook-addon-markdown ์ข…์†์„ฑ์—†์ด ์—ฌ์ „ํžˆ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ์ด ๋ฌธ์ œ๊ฐ€ git URL์„ ๋ถ€์ ์ ˆํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋Š” yarn์—์„œ ๋น„๋กฏ๋œ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์‚ฌ์‹ค ์ €๋Š” ๋„ˆ๋ฌด ๋นจ๋ฆฌ ์ฝ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ธ€์Ž„, ์šฐ๋ฆฌ ๋ฒ„๊ทธ๊ฐ€ ์ˆ˜์ •๋˜์—ˆ์ง€๋งŒ ๋‹น์‹ ์˜ ๋ฒ„๊ทธ์— ๋Œ€ํ•ด ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค ๐Ÿ˜• ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค

@opiation yarn.lock ํŒŒ์ผ๋„ ์—…๋ฐ์ดํŠธ ํ–ˆ์Šต๋‹ˆ๊นŒ? ๋‚ด๊ฐ€ํ•ด์•ผํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—

@Titozzz , yarn.lock ํŒŒ์ผ ์œ ๋ฌด์— ๊ด€๊ณ„์—†์ด์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ž ๊ธˆ ํŒŒ์ผ์„ ์—ฌ๋Ÿฌ ๋ฒˆ ์‚ญ์ œํ•˜๊ณ  ๋‹ค์‹œ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋„ ์ด๊ฒƒ์„ ์–ป์—ˆ๊ณ  git์˜ ํŒจํ‚ค์ง€๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

ํŒจํ‚ค์ง€์˜ tarball ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜์—ฌ์ด ๋ฌธ์ œ (https://github.com/yarnpkg/yarn/issues/6256)๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ์‹ถ์—ˆ์ง€๋งŒ ์‹ค์ œ๋กœ ์ž์ฒด ํ˜ธ์ŠคํŒ… Github ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ์˜ tarball URL์— ๋Œ€ํ•ด ์œ„์˜ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

github.com ํ˜ธ์ŠคํŒ… tarball์€ ์–ด๋–ป๊ฒŒ ๋“  ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ
https://github.com/luwes/chameleon/archive/grasshopper-v0.0.1-beta.4.tar.gz

์šฐ๋ฆฌ๊ฐ€ ๊ฐ€์ง€๊ณ ์žˆ๋Š” ํ”„๋กœ์ ํŠธ์—์„œ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์„ค์น˜์˜ ์ผ๋ถ€๋กœ prepare ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” deps๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด (git URL์ด๊ธฐ ๋•Œ๋ฌธ์—) ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ด๋“ค์€ git url์„ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” ์–ด๋–ค ์ด์œ ๋กœ ๋ฎคํ…์Šค ํ”Œ๋ž˜๊ทธ๋ฅผ ๋’ค์ง‘๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ๋” ๋งŽ์€ yarn install ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” prepare ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋‹ค๋ฅธ ๋ฃจํŠธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์•„๋‹Œ ๋ฃจํŠธ ํ”„๋กœ์„ธ์Šค์— ์˜ํ•ด ์‹œ์ž‘๋˜๊ธฐ ๋•Œ๋ฌธ์ธ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ์ด ์ •๋ณด๊ฐ€ ๋„์›€์ด๋˜๋Š”์ง€ ์•„๋‹ˆ๋ฉด ์‹ค์ œ๋กœ๋Š” ๊ทผ๊ฑฐ๊ฐ€ ์—†๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” ๋‚ด๊ฐ€ ์ฐพ์€ ๊ฒƒ์„ ์ƒ๊ด€์—†์ด ๊ณต์œ  ํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.

@khendry ๋‹ค์‹œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋งž์Šต๋‹ˆ๋‹ค. package.json์— prepare ์Šคํฌ๋ฆฝํŠธ๊ฐ€์žˆ๋Š” git ์ข…์†์„ฑ์—์„œ ๋น„๋กฏ๋ฉ๋‹ˆ๋‹ค! : +1 :

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

์˜ฌ๋ฐ”๋ฅธ ์ˆ˜์ •์ด ์–ด๋””์— / ๋ฌด์—‡์ธ์ง€ ์ดํ•ดํ•˜๊ธฐ์— ์ถฉ๋ถ„ํ•œ ์ฝ”๋“œ ๊ธฐ๋ฐ˜์„ ๋ณด์ง€ ๋ชปํ–ˆ์ง€๋งŒ ์ด๊ฒƒ์ด ๋ฌธ์ œ์˜ ์‹œ์ž‘์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์— ๋Œ€ํ•œ ์†Œ์‹์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์šฐ๋ฆฌ๋„์ด ๋ฌธ์ œ์— ์ง๋ฉด ํ•ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ™์€ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. CI๋กœ ์›์‚ฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ค๋ฅ˜๋กœ ์ธํ•ด ๋‘ ๋ฒˆ์งธ ๋นŒ๋“œ๊ฐ€ ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค ๐Ÿ˜ž

node_modules๋ฅผ ์‚ญ์ œํ•˜์‹ญ์‹œ์˜ค.

yarn cache clean
yarn install --network-concurrency 1

๊ณต์œ  ํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ ์–ด๋„ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ๐Ÿค—์ด์ง€๋งŒ ๋นŒ๋“œ ์‹œ๊ฐ„์„ ํ•ฉ๋ฆฌ์ ์œผ๋กœ ๋นจ๋ฆฌ ์›ํ•œ๋‹ค๋ฉด ์‹ค์ œ ํ•ด๊ฒฐ์ฑ…์€ ์—†์Šต๋‹ˆ๋‹ค ๐Ÿ˜…

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

๋‚˜๋ฅผ ์œ„ํ•ด --network-concurrency 1 ๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ์ผ์‹œ์ ์ธ ์ˆ˜์ •์ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ฐ’์€ ์ •ํ™•ํžˆ 1 ์—ฌ์•ผํ•ฉ๋‹ˆ๋‹ค.

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

--network-concurrency 1 ์ด ์‹ค์ œ๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ง€๊ธˆ๊นŒ์ง€ ๋งŒ๋‚œ ์œ ์ผํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ yarn.lock ์™„์ „ํžˆ ์žฌ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์–ป๋Š” ์˜ค๋ฅ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

2.054 Performing "GET" request to "https://<private-artifactory-npm-registry>/@myorg/eslint-plugin-import/-/@myorg/eslint-plugin-import-3.0.0.tgz".
verbose 2.519 Error: https://<private-artifactory-npm-registry>/@myorg/eslint-plugin-import/-/@myorg/eslint-plugin-import-3.0.0.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: "Unexpected end of data"
    at MessageError.ExtendableBuiltin (/Users/me/.nvm/versions/node/v8.12.0/lib/node_modules/yarn/lib/cli.js:237:66)
    at new MessageError (/Users/me/.nvm/versions/node/v8.12.0/lib/node_modules/yarn/lib/cli.js:266:123)
    at Extract.<anonymous> (/Users/me/.nvm/versions/node/v8.12.0/lib/node_modules/yarn/lib/cli.js:59446:14)
    at emitOne (events.js:121:20)
    at Extract.emit (events.js:211:7)
    at Extract.module.exports.Extract.destroy (/Users/me/.nvm/versions/node/v8.12.0/lib/node_modules/yarn/lib/cli.js:135306:17)
    at Extract.module.exports.Extract._final (/Users/me/.nvm/versions/node/v8.12.0/lib/node_modules/yarn/lib/cli.js:135364:34)
    at callFinal (/Users/me/.nvm/versions/node/v8.12.0/lib/node_modules/yarn/lib/cli.js:70270:10)
    at _combinedTickCallback (internal/process/next_tick.js:139:11)
    at process._tickCallback (internal/process/next_tick.js:181:9)

์—…๋ฐ์ดํŠธ : ๋ฐฉ๊ธˆ --skip-integrity-check ์‚ฌ์šฉํ•˜๋ฉด์ด ์˜ค๋ฅ˜๋ฅผ ์šฐํšŒ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ถ„๋ช…ํžˆ ๊ทธ๊ฒƒ์€ ์ •๋ง๋กœ ํ•ด๊ฒฐ์ฑ…์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋ฌด๊ฒฐ์„ฑ ๊ฒ€์‚ฌ ๋กœ์ง์˜ ์ค‘์š”ํ•œ ๋ฒ„๊ทธ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

[email protected] , [email protected]

@arcanis @ rally25rs ์ด ์˜ค๋ฅ˜์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ :

screen shot 2018-10-28 at 10 04 18 am

screen shot 2018-10-28 at 10 08 07 am

๋”ฐ๋ผ์„œ sha1์ด ๋™์ผํ•˜๋‹ค๋Š” ์ ์„ ๊ณ ๋ คํ•  ๋•Œ ๋ฌด๊ฒฐ์„ฑ ์ฒดํฌ์„ฌ์— ์‹คํŒจํ•œ๋‹ค๋Š” ๊ฒƒ์ด ๋‚˜์—๊ฒŒ ๊ฝค ์ด์ƒํ•˜๊ฒŒ ๋ณด์ž…๋‹ˆ๋‹ค.

Error: sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q= integrity checksum failed when using sha1: wanted sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q= but got sha1-AHoWKXweP+Pg9aZkGBsAjFruGaM=. (77 bytes)
    at Transform.on (/Users/shargrove/.nvm/versions/node/v8.12.0/lib/node_modules/yarn/lib/cli.js:32831:19)
    at emitNone (events.js:111:20)
    at Transform.emit (events.js:208:7)
    at endReadableNT (_stream_readable.js:1064:12)
    at _combinedTickCallback (internal/process/next_tick.js:139:11)
    at process._tickCallback (internal/process/next_tick.js:181:9)

์—…๋ฐ์ดํŠธ : ์œ„ ๋‚ด์šฉ์„ ํ™•์ธํ•œ ํ›„ --skip-integrity-check ๊ฐ€์ด ์˜ค๋ฅ˜๋ฅผ ์šฐํšŒํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฌด๊ฒฐ์„ฑ ๊ฒ€์‚ฌ ๋…ผ๋ฆฌ์—์„œ ๋” ์‹ฌ๊ฐํ•œ ๋ฒ„๊ทธ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

ํ˜ธ๊ธฐ์‹ฌ์—์„œ @opiation , package.json์„ ๋ถ™์—ฌ ๋„ฃ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์–ด๋””์—์„œ๋‚˜ ๋‹ค์Œ "์žฌ์ •์˜"๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

"dependencies": {
  "foo": "npm:@myorg/foo"
}

์˜ˆ๋ฅผ ๋“ค์–ด, ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

"eslint-plugin-import": "npm:@myorg/eslint-plugin-import",

๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์€ ์ œ๊ฐ€ ์˜ค๋ฅ˜ ๋ฅผ ๋ณธ ํŒจํ‚ค์ง€์ž…๋‹ˆ๋‹ค.์ด๊ฒŒ ๊ด€๋ จ์ด ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

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

์‹คํŒจํ•œ ํ…Œ์ŠคํŠธ

  • yarn install
  • yarn install --frozen-lockfile
  • yarn install --pure-lockfile
  • yarn install --mutex network
  • yarn install --network-concurrency 1
  • rm yarn.lock ์‚ฌ์ „์— ์‚ฌ์šฉํ•œ ์œ„์˜ ๋ชจ๋“  ํ…Œ์ŠคํŠธ
  • git ์„ค์น˜๋œ node:alpine ์ปจํ…Œ์ด๋„ˆ์—์„œ ์œ„์˜ ๋ชจ๋“  ํ…Œ์ŠคํŠธ (์ด ์Šค๋ ˆ๋“œ๊ฐ€ ์ƒ์„ฑ ๋œ ์‹œ์ ์— ์•ŒํŒŒ์ธ)
  • git ์„ค์น˜๋œ node:8-alpine ์ปจํ…Œ์ด๋„ˆ์—์„œ ์œ„์˜ ๋ชจ๋“  ํ…Œ์ŠคํŠธ

"๋ฌด์‹œ"๊ธฐ์ˆ ์— ๊ด€ํ•ด์„œ๋Š” ๋ฌด์Šจ ๋œป์ธ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ข…์†์„ฑ ๊ฐ’์—์„œ _protocol_-like ์ ‘๋‘์‚ฌ (์˜ˆ npm: )๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๊ฒฝ์šฐ ์˜ˆ, ํ•˜๋‚˜์˜ dev ์ข…์†์„ฑ์€ github ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

"storybook-addon-markdown": "github:mihalik/storybook-addon-markdown"

๊ทธ๋Ÿฌ๋‚˜ ๊ฐœ๋ฐœ์ž ์ข…์†์„ฑ์„ ์ œ๊ฑฐํ•˜๋”๋ผ๋„ ์˜ค๋ฅ˜๊ฐ€ ๊ณ„์† ๋ฐœ์ƒํ•˜๋ฏ€๋กœ ๊ด€๋ จ์ด์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

@holyxiaoxin ์—๊ฒŒ --network-concurrency 1 ์ถ”๊ฐ€ํ•˜๋ฉด ๋‚ด CI๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค ๐Ÿ‘

ํ•‘ @imsnif ? @hulkish ์˜ ์˜๊ฒฌ์— ๋”ฐ๋ผ ๋ฌด๊ฒฐ์„ฑ ๊ฒ€์‚ฌ์™€ ๊ด€๋ จ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

@khendry git ์ข…์†์„ฑ์— ๋” ์ด์ƒ ์ค€๋น„๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด CI์— ๋Œ€ํ•œ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์ง€๋งŒ --network-concurrency 1, --child-concurrency 1 ๋ฐ --skip-integrity-check๋กœ๋Š” ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

npm config set always-auth true ( ์—ฌ๊ธฐ์— ์„ค๋ช… ๋œ๋Œ€๋กœ )๋กœ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์•„๋Š” ํ•œ, npm์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํŒจํ‚ค์ง€๋ฅผ ๊ฐ€์ ธ ์˜ค๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ฒŒ์‹œ ํ•  ๋•Œ๋งŒ ์ž๊ฒฉ ์ฆ๋ช…์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ์ด์œ ๋กœ ์› ์‚ฌ๋Š” ์ด์ „์— ๊ทธ ์„ค์ •์„ ์กด์ค‘ํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ์ง€๊ธˆ์€ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค.

์ตœ๊ทผ์— yarn 1.12.3 ๋ฐ node 10.13.0 ์‚ฌ์šฉํ•˜์—ฌ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์œ„์˜ ๋งŽ์€ ์†”๋ฃจ์…˜์„ ์‹œ๋„ํ•œ ํ›„ ์•„๋ฌด ์†Œ์šฉ์ด ์—†์—ˆ์ง€๋งŒ yarn.lock ํŒŒ์ผ์„ ์‚ญ์ œ / ์žฌ์ƒ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. @mvonballmo๊ฐ€ ์ œ์•ˆํ•œ ๊ฒƒ์ฒ˜๋Ÿผ yarn.lock ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ด ์‹คํ–‰์— ์„ฑ๊ณตํ•œ ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜๋„ ์—ฌ์ „ํžˆ ์™„์ „ํžˆ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

yarn install v1.12.3
[1/4] Resolving packages...
[2/4] Fetching packages...
error https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: "ENOSPC: no space left on device, write"
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
yarn install v1.12.3
info No lockfile found.
[1/4] Resolving packages...
warning celebrate > joi > [email protected]: This version is no longer maintained. Please upgrade to the latest version.
warning xo > eslint > file-entry-cache > flat-cache > [email protected]: CircularJSON is in maintenance only, flatted is its successor.
[2/4] Fetching packages...
error https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: "ENOSPC: no space left on device, write"
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

์•ˆ๋…• ์นœ๊ตฌ๋“ค,

๋”ฐ๋ผ์„œ ์—ฌ๊ธฐ์—๋ณด๊ณ  ๋œ ๋‹ค๋ฅธ ์˜ค๋ฅ˜๋กœ ํŒ๋‹จํ•˜๋ฉด ์‹ค์ œ๋กœ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋‹ค๋ฅธ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.
ENOSPC: no space left on device, write ,
wanted sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q= but got sha1-AHoWKXweP+Pg9aZkGBsAjFruGaM= (btw, ์ž์„ธํžˆ ์‚ดํŽด ๋ณด์ง€๋งŒ ๊ฐ™์ง€ ์•Š์Œ),
the file appears to be corrupt: "Unexpected end of data" ๋“ฑ

์œ ์‚ฌํ•œ ์žฅ์†Œ์—์„œ ์ด๋Ÿฌํ•œ ์ผ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์„ ๊ฐ์‚ฌํ•˜์ง€๋งŒ ์™„์ „ํžˆ ๋‹ค๋ฅธ ๋ฌธ์ œ ๋ฐ / ๋˜๋Š” ํ™˜๊ฒฝ์œผ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌด๊ฒฐ์„ฑ ๊ฒ€์‚ฌ (ํŠนํžˆ ์˜ค๋ฅ˜ ์ฝœ๋ฐฑ์— ๋Œ€ํ•œ untarStream-์ž์„ธํ•œ ๋””๋ฒ„๊ทธ @hulkish ๋•๋ถ„์—!)๋Š” ๋งŽ์€ ์˜ค๋ฅ˜๋ฅผ ์ˆ˜์ง‘ ํ•  ์ˆ˜์žˆ๋Š” ๊น”๋•Œ๊ธฐ์ด๋ฉฐ ์‹ค์ œ ์˜ค๋ฅ˜๋ฅผ ๋„˜์–ด์„œ ์‚ฌ์šฉ์ž์—๊ฒŒ ํ”ผ๋“œ๋ฐฑ์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์€ ์•ฝ๊ฐ„ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

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

๊ฒฝํ•ฉ ์ƒํƒœ์— ๋Œ€ํ•œ ์ด๋ก ์€ ํฅ๋ฏธ๋กญ๊ณ  ๊ฐ€๋Šฅ์„ฑ์ด ๋งค์šฐ ๋†’์Šต๋‹ˆ๋‹ค. ๋” ์ž์„ธํžˆ ์‚ดํŽด๋ณด๋ฉด ๊ธฐ์ฉ๋‹ˆ๋‹ค. @opiation ์˜ ๋ณต์ œ๊ฐ€ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์ง€ ์•Š์€ ๊ฒƒ์ด ๋‘๋ ต์Šต๋‹ˆ๋‹ค. ์ด์ œ 7 ๋ฒˆ์งธ ๋กœ์ปฌ ์„ค์น˜๋ฅผ ์‹คํ–‰ ์ค‘์ด๋ฉฐ ์—ฌ์ „ํžˆ ๋ฌธ์ œ์—†์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค (์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  yarn ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ํ•ด๋‹น package.json ๋ฐ yarn.lock๊ณผ ํ•จ๊ป˜ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค.-์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์—ฌ์ „ํžˆ ๋ฌธ์ œ๋ฅผ ์ผ์œผ์ผฐ์Šต๋‹ˆ๊นŒ?)

@opiation-์—ฌ์ „ํžˆ์ด ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ฐ™์€ ์กฐ๊ฑด์—์„œ? ์•„๋งˆ๋„ ์šฐ๋ฆฌ๋Š” ํ•ด์ƒ๋„์˜ ์ˆ˜์ค€์„ ๋‚ฎ์ถœ ์ˆ˜ ์žˆ๊ณ  ๋‹น์‹ ์ดํ•˜๋Š” ๋ชจ๋“  ์ผ์„์ด ์ผ์ด ์ผ์–ด๋‚˜๊ฒŒํ•˜๊ธฐ์œ„ํ•œ ๋ช…๋ น๊นŒ์ง€ ๋งํ•ด ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

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

๋‚ด CI ์‹œ์Šคํ…œ์—์„œ ๋™์ผํ•œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

2018-11-12T04:32:13.0386630Z error https://pkgs.dev.azure.com/JeremyTCD/_packaging/Main/npm/registry/cheerio/-/cheerio-0.22.0.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: "Unexpected end of data"
2018-11-12T04:32:20.4838361Z 
2018-11-12T04:32:20.4852626Z     yarn install v1.12.3                                                                    
2018-11-12T04:32:20.4853491Z     [1/4] Resolving packages...                                                             
2018-11-12T04:32:20.4855400Z     [2/4] Fetching packages...                                                              
2018-11-12T04:32:20.4856037Z     info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

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

์›์ธ

๋‚ด ํ”„๋กœ์ ํŠธ ([email protected])์— ์ƒˆ ์ข…์†์„ฑ์„ ์ถ”๊ฐ€ ํ•œ ํ›„ ๋กœ์ปฌ ์ปดํ“จํ„ฐ์—์„œ yarn install ๋ฅผ ํ˜ธ์ถœํ–ˆ์Šต๋‹ˆ๋‹ค. ๋กœ์ปฌ .npmrc ์œผ๋กœ ์ธํ•ด yarn์€ ๋‚ด ๊ฐœ์ธ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์—์„œ ์ข…์†์„ฑ์„ ๋ณต์›ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ƒ์„ฑ ๋œ yarn.lock ์—๋Š” ๋‹ค์Œ ์ค„์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

[email protected]:
  version "0.22.0"
  resolved "https://pkgs.dev.azure.com/JeremyTCD/_packaging/Main/npm/registry/cheerio/-/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e"
  dependencies:
  ...

ํŒจํ‚ค์ง€๊ฐ€ ๊ฐœ์ธ ์ €์žฅ์†Œ์—์„œ ์–ด๋–ป๊ฒŒ ํ™•์ธ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ๋‚ด CI ๋จธ์‹ ์— ๊ฐœ์ธ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์— ๋Œ€ํ•œ ์ž๊ฒฉ ์ฆ๋ช…์ด์žˆ๋Š” .npmrc ๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€์˜ ์›์ธ์ž…๋‹ˆ๋‹ค.

https://pkgs.dev.azure.com/JeremyTCD/_packaging/Main/npm/registry/cheerio/-/cheerio-0.22.0.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: "Unexpected end of data"

๋‚ด ๋กœ์ปฌ .npmrc ํ•˜๊ณ  ๋‚ด yarn.lock ์žฌ์ƒ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

[email protected]:
  version "0.22.0"
  resolved "http://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e"
  integrity sha1-qbqoYKP5tZWmuBsahocxIe06Jp4=

์ด์ œ ํŒจํ‚ค์ง€๊ฐ€ ๊ธฐ๋ณธ NPM ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์—์„œ ์–ด๋–ป๊ฒŒ ํ™•์ธ๋˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ณ ์น˜๋‹ค

๋ฌธ์ œ์˜ ์›์ธ์ด ๋‚˜์™€ ๋™์ผํ•œ ๊ฒฝ์šฐ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • CI ๋จธ์‹ ์— ํ•„์š”ํ•œ ์ž๊ฒฉ ์ฆ๋ช…์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜
  • ๋กœ์ปฌ .npmrc ( yarn config list ๋Š” yarn์ด ๋ณต์›ํ•˜๋Š” ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋ฅผ ์ธ์‡„ ํ•จ)์„ ์กฐ์ • ํ•œ ๋‹ค์Œ yarn.lock ๋ฅผ ๋‹ค์‹œ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

๋ฉ”๋ชจ

์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ๋” ๊ตฌ์ฒด์  ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŽธ์ง‘ : ์ฒ˜์Œ์—๋Š” Yarn์„ ๋กค๋ฐฑํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ ๋  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ˆ˜๋กœ ๋‚ด ์ž˜๋ชป๋œ ์ปค๋ฐ‹์„์ด ๋ฌธ์ œ์— ์—ฐ๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์› ์‚ฌ๋Š” ๊ฒฐ๊ตญ ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ ์—ˆ์Šต๋‹ˆ๋‹ค.

์š”์•ฝ : yarn.lock ํŒŒ์ผ์„ ์‚ญ์ œํ•˜๊ณ  ๋‹ค์‹œ ์ƒ์„ฑํ•˜์‹ญ์‹œ์˜ค.

Netlify์—์„œ ๋นŒ๋“œํ•˜๋ ค๊ณ  ํ•  ๋•Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค : Extracting tar content of undefined failed, the file appears to be corrupt: "Unexpected end of data"

node_modules ํด๋”์™€ yarn.lock ํŒŒ์ผ์„ ์‚ญ์ œ ํ•œ ๋‹ค์Œ yarn install ๋ฅผ ํ†ตํ•ด ๋‹ค์‹œ ์ƒ์„ฑํ•˜๋ฉด ์ข…์†์„ฑ์ด ๋‹ค๋ฅธ ์ƒˆ๋กœ์šด yarn.lock ํŒŒ์ผ์ด ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค. ์ด ์ƒˆ ํŒŒ์ผ๋กœ Netlify๋Š” ๋‚ด ํ”„๋กœ์ ํŠธ๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ๊ตฌ์ถ•ํ–ˆ์Šต๋‹ˆ๋‹ค.

@imsnif ๋Š” ์—ฌ๊ธฐ์— ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋‹ค๋ฅธ ๋ฌธ์ œ๊ฐ€๋ณด๊ณ ๋˜๊ณ  ์žˆ๋‹ค๋Š” ๋ฐ ๋™์˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์ž‘์—…์ค‘์ธ ํ”„๋กœ์ ํŠธ์—์„œ @khendry ๊ฐ€ ์„ค๋ช…ํ•œ ๋ฌธ์ œ๋ฅผ ์œ ๋ฐœํ•˜๋Š” ์žฌํ˜„ ์‚ฌ๋ก€๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐ ํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ๊ฐ€์ง€๊ณ ์žˆ๋Š” ํ”„๋กœ์ ํŠธ์—์„œ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์„ค์น˜์˜ ์ผ๋ถ€๋กœ prepare ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” deps๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด (git URL์ด๊ธฐ ๋•Œ๋ฌธ์—) ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ด๋“ค์€ git url์„ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” ์–ด๋–ค ์ด์œ ๋กœ ๋ฎคํ…์Šค ํ”Œ๋ž˜๊ทธ๋ฅผ ๋’ค์ง‘๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ๋” ๋งŽ์€ yarn install ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” prepare ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋‹ค๋ฅธ ๋ฃจํŠธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์•„๋‹Œ ๋ฃจํŠธ ํ”„๋กœ์„ธ์Šค์— ์˜ํ•ด ์‹œ์ž‘๋˜๊ธฐ ๋•Œ๋ฌธ์ธ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

์•„๋ž˜์˜ ์žฌํ˜„ ๋‹จ๊ณ„๋ฅผ ๊ณต์œ ํ•˜๋ฉด ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ ํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๋” ๋งŽ์€ ์ •๋ณด๊ฐ€ ํ•„์š”ํ•˜๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”.

์žฌํ˜„ ๋‹จ๊ณ„

  1. ๋…ธ๋“œ v10.3.0 ๋ฐ yarn v1.12.3 ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ ํ…Œ์ŠคํŠธ ํด๋” ์—์„œ์ด ์š”์  ์—์„œ package.json ๋ฐ yarn.lock
  2. rm -rf ~/.cache/yarn* node_modules/ && yarn install --frozen-lockfile --network-concurrency 16 (์•ˆ์ •์ ์ธ ํ™˜๊ฒฝ์„ ์œ„ํ•ด ์บ์‹œ๋ฅผ ์ง€์šฐ๊ณ  ์ด์ „์— ๋…ธ๋“œ ๋ชจ๋“ˆ์„ ์„ค์น˜ํ•˜์‹ญ์‹œ์˜ค. ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์„ ๋†’์ด๋ ค๋ฉด ๋™์‹œ์„ฑ์„ ๋†’๊ฒŒ ์„ค์ •ํ•˜์‹ญ์‹œ์˜ค)
  3. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ถœ๋ ฅ์„ ๊ด€์ฐฐํ•˜์‹ญ์‹œ์˜ค.
yarn install v1.12.3
[1/5] Validating package.json...
[2/5] Resolving packages...
[3/5] Fetching packages...
warning Pattern ["object-assign@latest"] is trying to unpack in the same destination "/home/ocderby/.cache/yarn/v4/npm-object-assign-4.1.1-2109adc7965887cfc05cbbd442cac8bfbb360863/node_modules/object-assign" as pattern ["object-assign@^4.1.0","object-assign@^4.1.0","object-assign@^4","object-assign@^4.1.1","object-assign@^4.1.0","[email protected]","object-assign@^4.1.0","object-assign@^4.1.1","object-assign@^4.1.0","object-assign@^4.1.0","object-assign@^4.1.0","object-assign@^4.1.0","object-assign@^4.1.0","object-assign@^4.1.0","object-assign@^4.1.0","object-assign@^4.1.1","object-assign@^4.1.1","object-assign@^4.0.1","object-assign@^4.0.1","object-assign@^4.1.0","object-assign@^4.0.1","object-assign@^4.0.1","object-assign@^4.0.1","object-assign@^4.1.0","object-assign@^4.0.1"]. This could result in non-deterministic behavior, skipping.
info No lockfile found.
[1/4] Resolving packages...
warning eslint > file-entry-cache > flat-cache > [email protected]: CircularJSON is in maintenance only, flatted is its successor.
warning jest > jest-cli > prompts > [email protected]: Please upgrade to kleur<strong i="26">@3</strong> or migrate to 'ansi-colors' if you prefer the old syntax. Visit <https://github.com/lukeed/kleur/releases/tag/v3.0.0\> for migration path(s).
[2/4] Fetching packages...
error https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: "ENOENT: no such file or directory, chmod '/home/ocderby/.cache/yarn/v4/npm-lodash-4.17.4-78203a4d1c328ae1d86dca6460e369b57f4055ae/node_modules/lodash/_shortOut.js'"
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

๊ธฐํƒ€ ์ฐธ๊ณ  ์‚ฌํ•ญ

๋‚˜๋Š” ๋‹ค์–‘ํ•œ ๊ฒƒ์„ ์‹œ๋„ํ–ˆ๋‹ค. ์—ฌ๊ธฐ ๋‚ด ๋…ธํŠธ๊ฐ€์žˆ๋‹ค.

  1. ์ด ๋ฌธ์ œ๋Š” ๋‚˜์—๊ฒŒ 100 % ์žฌํ˜„๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์œ„์—์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ์‚ฌ์šฉ๋˜๋Š” ๋„คํŠธ์›Œํฌ ๋™์‹œ์„ฑ์„ ๋Š˜๋ฆฌ๋ฉด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์•„์ง‘๋‹ˆ๋‹ค.
  2. ํŒจํ‚ค์ง€ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์— ๊ฒŒ์‹œ ๋œ react-textarea-autosize ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค ( @khendry ๊ฐ€ ์œ„์—์„œ๋ณด๊ณ  ํ•œ ๋‚ด์šฉ์„ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ
  3. --mutex file ์ด ์ „ํ˜€ ๋„์›€์ด๋˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
  4. ์œ„์—์„œ๋ณด๊ณ  ํ•œ๋Œ€๋กœ ๋„คํŠธ์›Œํฌ ๋™์‹œ์„ฑ์„ 1 ( --network-concurrency 1 ์ธ์ˆ˜๋ฅผ ํ†ตํ•ด)๋กœ ์ œํ•œํ•˜๋ฉด ์†๋„๋Š” ๋Š๋ฆฌ์ง€ ๋งŒ ๋ชจ๋“  ๊ฒƒ์ด ์ œ๋Œ€๋กœ ์„ค์น˜๋ฉ๋‹ˆ๋‹ค.
  5. ๋‚˜๋Š” ์ด๊ฒƒ์„ ์‹ค v1.9.4์™€ v1.12.3์œผ๋กœ ๋…ธ๋“œ v8.12.0์—์„œ ์žฌํ˜„ํ–ˆ๋‹ค. ์ด๊ฒƒ์€ Circle CI 2.0์—์„œ ์‹คํ–‰๋˜๋Š” circleci/node:8-stretch docker ์ด๋ฏธ์ง€์—์„œ ์‹คํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ตœ๊ทผ์— yarn์„ 1.12.3 ์—…๋ฐ์ดํŠธ ํ•œ ํ›„์ด ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.
๋‚ด travis-ci ๋นŒ๋“œ ์‹คํŒจ https://travis-ci.org/ankurk91/vue-cleave-component ์ฐธ์กฐ

$ yarn install --non-interactive
yarn install v1.12.3
[1/5] Validating package.json...
[2/5] Resolving packages...
[3/5] Fetching packages...
error https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.2.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: "Unexpected end of data"
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
The command "yarn install --non-interactive" failed and exited with 1 during .

[email protected] ์—์„œ๋งŒ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
์–ด๋–ป๊ฒŒ ๋“  ์„ฑ๊ณตํ•˜๋ฉด ๋‹ค์‹œ ๊ฒŒ์‹œ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ถ”์‹ .
har-validator ํŒจํ‚ค์ง€์—๋งŒ ํ•ด๋‹น๋ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋˜ํ•œ ์–ป๋Š”๋‹ค
error https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.2.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: "Unexpected end of data"
์ปฌ๋กœ https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.2.tgz์— ๋Œ€ํ•ด 404๋ฅผ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ ๋‚ด ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋‹ค์šด๋กœ๋“œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‚ด ์„œ๋ฒ„ ์ค‘ ํ•˜๋‚˜๋ฅผ ์›์‚ฌ๋ฅผ 1.12.1๋กœ ๋‹ค์šด ๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด ์ž‘๋™ํ•˜๊ธฐ ์‹œ์ž‘ํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ์„œ๋ฒ„์—์„œ๋Š” ์˜ค๋ฅ˜๊ฐ€ ๋™์ผํ•˜๊ฒŒ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค (๋‘ ๊ฒฝ์šฐ ๋ชจ๋‘ ์›์‚ฌ ์บ์‹œ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค).
๊ทธ๊ฒŒ ์ผ์ข…์˜ cloudflare (๊ตฌ์„ฑ) ๋ฌธ์ œ ์ผ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์•„๋‹ˆ์š”,์ด ํŠน์ • ์ธ์Šคํ„ด์Šค (๊ท€ํ•˜ ๋ฐ @ ankurk91์˜ ์ธ์Šคํ„ด์Šค)๋Š” har-validator ๊ฒŒ์‹œ๊ฐ€ ์ทจ์†Œ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค (# 6694 ์ฐธ์กฐ).

๋‹ค๋ฅธ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์ข…์†์„ฑ์œผ๋กœ ์ถ”๊ฐ€ ํ•œ ํ›„ ( "@team/myproject": "git+ssh://[email protected]/team/myproject.git#master", ) ๋‚ด CI ํ™˜๊ฒฝ์—์„œ๋งŒ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

  • ๋‚ด CI ์Šคํฌ๋ฆฝํŠธ์— --network-concurrency 1 ์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€๋งŒ ๋ฌผ๋ก  ๋นŒ๋“œ๊ฐ€ ๋งค์šฐ ๋Š๋ ค์ง‘๋‹ˆ๋‹ค.
  • yarn install --network-concurrency 16 ์‹คํ–‰ํ•˜๋ฉด ๋กœ์ปฌ ์—์„œ๋„ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒ

์บ์‹œ๋ฅผ ์ •๋ฆฌํ•˜๊ฑฐ๋‚˜ yarn.lock ์žฌ์„ค์ •ํ•˜์ง€๋„ ๋‚˜์—๊ฒŒ ์ฐจ์ด๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

ํŽธ์ง‘ : --network-concurrency 1 ์ˆ˜์ •์ด ์ผ๊ด€๋˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค, ๋ถˆํ–‰ํžˆ๋„ ๐Ÿ˜ข

์—ฌ๊ธฐ์— ๊ฐ™์€ ์˜ค๋ฅ˜,
์žฌํ˜„ํ•˜๊ธฐ ์‰ฌ์›€ :
yarn upgrade typescript@^2.8

๊ทธ๋•Œ:
yarn upgrade [email protected]

์ด ๋งˆ์ง€๋ง‰ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋™์•ˆ ctrl + c๋ฅผํ–ˆ๋Š”๋ฐ .. 'yarn upgrade'๋ฅผ ๋‹ค์‹œ ์‹œ๋„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

yarn upgrade v1.12.3
[1/4] ๐Ÿ”  Resolving packages...
[2/4] ๐Ÿšš  Fetching packages...
error https://registry.yarnpkg.com/typescript/-/typescript-2.8.4.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: "ENOENT: no such file or directory, stat '/Users/u/Library/Caches/Yarn/v4/npm-typescript-2.8.4-0b1db68e6bdfb0b767fa2ab642136a35b059b199/node_modules/typescript/lib/lib.d.ts'"
info Visit https://yarnpkg.com/en/docs/cli/upgrade for documentation about this command.

์—…๋ฐ์ดํŠธ : ์•„๋ž˜๋Š” Sonatype Nexus ์„ค์น˜์˜ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ๊ฐ€ ์†์ƒ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— Yarn ๋ฌธ์ œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์ปจํ…์ŠคํŠธ๋ฅผ ์œ„ํ•ด ๋– ๋‚˜์‹ญ์‹œ์˜ค.

CI ํ™˜๊ฒฝ์˜ ์—ฌ๋Ÿฌ ํŒจํ‚ค์ง€์—์„œ ์ด๊ฒƒ์„ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. Yarn 1.12.3 ๋ฐ ๋…ธ๋“œ 11.1 :

responsive-props-1.2.2.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: "Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?"
styled-components-breakpoint-2.1.3.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: "Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?"

๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์ง€๋งŒ .... ํŒŒ์ผ์ด ์†์ƒ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค : "EBUSY : ...".
์ „์ฒด ์›์‚ฌ ์บ์‹œ๋ฅผ ์ง€์šฐ๊ณ  ๋‹ค์‹œ ์‹คํ–‰ํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ์›์‚ฌ๊ฐ€ ํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ  ์ž์ฒด์ ์œผ๋กœ ์ž ๊ทธ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ Windows 10์— ์žˆ์Šต๋‹ˆ๋‹ค.

yarn install v1.10.1 [1/4] Resolving packages... [2/4] Fetching packages... error https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: "EBUSY: resource busy or locked, open 'c:\\src\\yarn\\cache\\v2\\npm-fbjs-0.8.17-c4d598ead6949112653d6588b01a5cdcd9f90fdd\\lib\\UserAgent.js'" info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

๋‚˜๋Š” ์ž‘๋™ํ•˜๋Š” "yarn --pnp"๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋” ์ƒˆ๋กญ๊ณ  ์•„๋งˆ๋„ ๋” ๋ถˆ์•ˆ์ •ํ•œ ์ฝ”๋“œ ์—ฌ์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด์ƒํ•ฉ๋‹ˆ๋‹ค.

yarn.lock ์„ (๋ฅผ) ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ด ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„, ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ .npmrc๋ฅผ ์ œ๊ฑฐํ•˜์—ฌ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

rm ~/.npmrc

@binchik- ์ด๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ•œ ์œ ์ผํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@binchik์—๊ฒŒ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๐Ÿ‘

๋”ฐ๋ผ์„œ yarn ์‹คํŒจ๋กœ ์ด์–ด์ง€๋Š” ์ผ๋ จ์˜ ์ด๋ฒคํŠธ๋กœ ๋˜ ๋Œ๋ฆฐ ํ›„ ๋‹ค์Œ๊ณผ ๊ฐ™์€ package.json์—์„œ npm ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

"audit": "npm audit"

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

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

๋ช‡ ๊ฐ€์ง€ ์ง€์นจ :

  • ์‹คํŒจ ํ•  ๋•Œ untarStream ๋“ค์–ด๊ฐ€๋Š” ๋‚ด์šฉ์„ ํŒŒ์•…ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์ œ ๊ฐ€์„ค์€ json ์‘๋‹ต์„ tarball (https://github.com/yarnpkg/yarn/blob/master)๋กœ ์ฒ˜๋ฆฌํ•˜๋ ค๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. /src/fetchers/tarball-fetcher.js#L146-L150)

  • .npmrc ์—์„œ ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐ๋˜๋Š” ์œ ์ผํ•œ ๊ฒƒ์€ ์ธ์ฆ ํ† ํฐ์ž…๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ .npmrc (์ „์ฒด ํŒŒ์ผ์ด ์•„๋‹Œ)์—์„œ ์ธ์ฆ ํ† ํฐ ์ค„์„ ์ œ๊ฑฐํ•˜์—ฌ ๋ฌธ์ œ๊ฐ€ ์‚ฌ๋ผ์ง€๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

FWIW, ์˜ค๋Š˜์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ช‡ ๊ฐ€์ง€:

  • .npmrc ์ œ๊ฑฐํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ์˜ ์œ ์ผํ•œ ๊ฒƒ์€ ์ธ์ฆ ํ† ํฐ๊ณผ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • npm install ์‹คํŒจํ–ˆ์œผ๋ฉฐ 401 ๊ถŒํ•œ์—†๋Š” ์˜ค๋ฅ˜๋ฅผ ๊ธฐ๋กํ–ˆ์Šต๋‹ˆ๋‹ค.
  • .npmrc ํŒŒ์ผ์„ ์ œ๊ฑฐํ•œ ํ›„ npm install ๋‹ค์‹œ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚ด ๋ฐœ๊ฒฌ์— ๋”ฐ๋ผ @deleteme ๋Š” ์›์ธ์ด ์•„๋‹ˆ๋ผ ๋ฒ„๊ทธ์˜ ๋ถ€์‚ฐ๋ฌผ์ฒ˜๋Ÿผ ๋“ค๋ฆฝ๋‹ˆ๋‹ค.

.npmrc ๋˜๋Š” .yarnrc๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋งŒ๋‚ฌ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๊ฐ€ ๊ฐ‘์ž๊ธฐ ํ‰์†Œ๋ณด๋‹ค ํ›จ์”ฌ ๋” ๋งŽ์ด ๋‚˜ํƒ€๋‚˜๊ณ  npm ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๊ฐ€ ํŠนํžˆ ๋ถˆ์•ˆ์ • ํ•˜๋‹ค๋Š” ์ ์„ ๊ฐ์•ˆํ•  ๋•Œ ๋‚ด ๊ฐ€์„ค์ด ๋ฉ€์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

@arcanis ๋Š” ์˜ค๋Š˜์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. npmrc ์ธ์ฆ ํ† ํฐ ์ค„์„ ์ œ๊ฑฐํ•˜์—ฌ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ œ ๊ฒฝ์šฐ์—๋Š” ~/.npmrc ์ƒ์„ฑ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ yarn.lock ์žฌ์ƒ์„ฑ์€ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ„๋‹จํžˆ,

$ rm yarn.lock && yarn

ํŽธ์ง‘ :์ด ๋ฌธ์ œ์— ๋‘ ๋ฒˆ๋งŒ ์ง๋ฉดํ•˜์—ฌ ์—ฌ๊ธฐ์— ์ฐฉ๋ฅ™ํ–ˆ์Šต๋‹ˆ๋‹ค. :๋ฏธ์†Œ:

์ œ ๊ฒฝ์šฐ์—๋Š” CircleCI, circleci/node:10.11.0 docker image ๋ฐ [email protected] ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ~/.npmrc ๋Š” ์—†์Šต๋‹ˆ๋‹ค. @achillesrasquinha ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ผ์ฃผ์ผ์— ๊ฑธ์ณ์ด ๋ฌธ์ œ์— ์ง๋ฉดํ–ˆ๋‹ค. yarn install --network-concurrency 1 ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์ง€๋งŒ ๋งค์šฐ ๋Š๋ฆฝ๋‹ˆ๋‹ค.

btw์—์„œ๋Š”์ด ์ •๋ณด๊ฐ€ ๋ˆ„๊ตฌ์—๊ฒŒ๋‚˜ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‚ด ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉ์ž ์ง€์ • npm ํŒจํ‚ค์ง€ (์‚ฌ๋‚ด)๋ฅผ ์‚ฌ์šฉํ•˜๊ณ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํ•ญ์ƒ .cache/v4 ์™€ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€๋งŒ ์‹คํŒจ ํ•  ๋•Œ๋งˆ๋‹ค ๋‹ค๋ฅธ ํŒจํ‚ค์ง€ ์ด๋ฆ„์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๋งŽ์€ ์‹œ๊ฐ„์„ ๋ณด๋‚ธ ํ›„ ๋ฌด์ž‘์œ„ ๊ด€์ฐฐ์„ ํ•˜๋‚˜ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.
๋‚ด ํ”„๋กœ์ ํŠธ์™€ ์‚ฌ์šฉ์ž ์ง€์ • npm ํŒจํ‚ค์ง€๋Š” ๋ฒˆ๋“ค ๋นŒ๋“œ์— ๋™์ผํ•œ yarn build ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ์ง€์ • ํŒจํ‚ค์ง€ ๋นŒ๋“œ ์Šคํฌ๋ฆฝํŠธ ์ด๋ฆ„์„ yarn build:p ์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ์ด๋ฆ„์œผ๋กœ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ž‘๋™์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๋นŒ๋“œ๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ์‹คํŒจํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ด 2๊ฐ€ ์–ด๋–ป๊ฒŒ ์˜์กดํ•˜๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค.

.npmrc ์ œ๊ฑฐ๋Š” ๋‚˜์—๊ฒŒ๋งŒ ํ•ด๋‹น๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ @davidalee๊ฐ€ ์–ธ๊ธ‰ ํ•œ yarn.lock ํŒŒ์ผ์„ ์ œ๊ฑฐํ•ด์•ผํ–ˆ์Šต๋‹ˆ๋‹ค. ์™œ ๊ทธ๊ฐ€ ์—„์ง€ ์†๊ฐ€๋ฝ์„ ์•„๋ž˜๋กœ ๋‚ด๋ฆฌ๋Š” ์ง€ ๋ชจ๋ฅด๊ฒ ์–ด์š” ๐Ÿคทโ€โ™‚๏ธ

.npmrc ์ œ๊ฑฐ๊ฐ€ ํšจ๊ณผ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ •๋ง ์‚ญ์ œ์˜ ํŒฌ์ด ์•„๋‹ˆ์—์š” yarn.lock ๋ฐ”๋กœ ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค ๋‚ด๊ฐ€ ๋ฌด์Šจ ์ง“์„ํ–ˆ๋Š”์ง€ ์žˆ๋„๋ก ํŒŒ์ผ์„ har-validator ๋กœ๋ถ€ํ„ฐ ํŒจํ‚ค์ง€ yarn.lock ํ•œ ํ›„ ๋‹ค์‹œ ์‹คํ–‰ yarn ๋‚˜๋ฅผ ์œ„ํ•ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ rm yarn.lock ์ €์—๊ฒŒ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. har-validator-5.1.2 ํŒจํ‚ค์ง€์— ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

error https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.2.tgz: Extracting tar content of undefined failed, the file appears to be corrupt: "Unexpected end of data"

์•ˆ๋…•ํ•˜์„ธ์š”, har-validator-5.1.2๋Š” ์—ฌ๊ธฐ https://github.com/ahmadnassri/node-har-validator/issues/112#issuecomment -437378269์— ๋ช…์‹œ๋œ๋Œ€๋กœ npm์—์„œ ๊ฒŒ์‹œ๋˜์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ yarn upgrade ๋ฅผ ํ†ตํ•ด ์ข…์†์„ฑ์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค yarn.lock ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•œ ํšจ๊ณผ๊ฐ€์žˆ์„ ์ˆ˜ ์žˆ์Œ).

์ด ๋ฌธ์ œ๋Š” ์ข…๊ฒฐ ๋  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ดˆ๊ธฐ ๋ฌธ์ œ ๋ณด๊ณ ์„œ์—์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด yarn.lock ์ œ๊ฑฐํ•ด๋„ ํšจ๊ณผ๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. .npmrc ์ œ๊ฑฐํ•˜์ง€๋„ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ฒŒ๋‹ค๊ฐ€ ๋‚ด๊ฐ€ ์•„๋Š” ํ•œ node:10-alpine ๋„์ปค ์ด๋ฏธ์ง€์—๋Š” .npmrc ํŒŒ์ผ์ด ์—†๊ฑฐ๋‚˜ ์ƒ์„ฑํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ ์˜ค๋ฅ˜๋Š” har-validator ํŒจํ‚ค์ง€์—๋งŒ ๊ตญํ•œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‚ฌ์‹ค, ๋‚˜๋Š” ๊ทธ ํŒจํ‚ค์ง€์—์„œ ๊ทธ๊ฒƒ์„ ๋ณธ ์ ์ด ์—†์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ํŒจํ‚ค์ง€ lodash , fbjs , react ๋ฐ ๋‹ค๋ฅธ ํ˜ธ์ŠคํŠธ์—์„œ ๊ทธ๊ฒƒ์„ ๋งŒ๋‚ฌ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด์ „ ์˜๊ฒฌ ์—์„œ์ด ๋ฌธ์ œ๋ฅผ ์—ฌ์ „ํžˆ ํ™•์‹คํ•˜๊ฒŒ ์žฌํ˜„ํ•˜๋Š” ๋‚˜์˜ ์‹œ๋„๋ฅผ ์š”์•ฝํ–ˆ๋‹ค. ๊ธฐ๋ก์„ ์œ„ํ•ด docker๋กœ ํ…Œ์ŠคํŠธ ํ•  ๋•Œ package.json ๋งŒ ํฌํ•จํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ yarn.lock ์—†์Œ, .npmrc ์—†์Œ, node_modules . ๋‚ด ๋กœ์ปฌ ๋จธ์‹ , GCE ์ธ์Šคํ„ด์Šค ๋ฐ Gitlab.com์˜ CI๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ์ด ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. --network-concurrency=1 ๋„ --skip-integrity-check ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ, ํŠนํžˆ yarn install ๊ฐ€ npm install ๋Œ€ํ•œ ๋“œ๋กญ ์ธ ๋Œ€์ฒดํ’ˆ์ด์–ด์•ผํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ  ์œ„์—์„œ ์–ธ๊ธ‰ ํ•œ ๋ชจ๋“  ํ…Œ์ŠคํŠธ๊ฐ€ npm install ์‚ฌ์šฉํ•˜์—ฌ ์ž‘๋™ํ•˜๋ฏ€๋กœ์ด ๋ฌธ์ œ๋ฅผ ์ข…๋ฃŒํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค yarn install ๋™์ผํ•œ package.json ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.

๋ฌธ์ œ๋Š” npm ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๊ฐ€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋ถˆ์•ˆ์ •ํ•˜๊ณ  ์˜ค๋ฅ˜๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค (์—ฌ๋Ÿฌ ์š”์ฒญ์ด ๋ถ„๋ช…ํžˆ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ ๋” ๋†’์€ ์†๋„๋กœ-์•„๋งˆ๋„ ์ผ์ข…์˜ IP ๋‹น ์กฐ์ ˆ?). ์–ด๋–ค ์ด์œ ๋กœ ๊ทธ๋“ค์€ Yarn์— ์˜ํ•ด ์ œ๋Œ€๋กœ ์žกํžˆ์ง€ ์•Š์•˜๊ณ , ๋งน๋ชฉ์ ์œผ๋กœ ํ•ด์‹œ๋ฅผ ์‹œ๋„ํ•˜๊ณ  ์˜ˆ์ƒ ํ•ด์‹œ์™€ ๋น„๊ตํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ Yarn์—๋Š” ๋ฒ„๊ทธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค (๋” ์œ ์šฉํ•œ ์˜ค๋ฅ˜๋ฅผ ์ธ์‡„ํ•ด์•ผ ํ•จ).ํ•˜์ง€๋งŒ ์‹ค์ œ ๋ฌธ์ œ๋Š” npm ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๊ฐ€ ์–ผ๋งˆ๋‚˜ ๋ถˆ์•ˆ์ •ํ•œ์ง€๋ฅผ ๊ฐ์•ˆํ•  ๋•Œ ํ˜„์žฌ ๋‚ด ์šฐ์„  ์ˆœ์œ„๋Š” ์•„๋‹™๋‹ˆ๋‹ค (ํ•˜์ง€๋งŒ PR์„ ํ™•์‹คํžˆ ๊ฒ€ํ† ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!) .

npm์—์„œ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” ์ž‘๋™ ํ•  ๋•Œ๊นŒ์ง€ ์š”์ฒญ์„ ๋‹ค์‹œ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. Yarn์—๋Š”์ด๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ์žˆ์ง€๋งŒ ๊ตฌ์ฒด์ ์œผ๋กœ ํ•ด์‹œ๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๋ถ€๋ถ„์—๋Š” ์—†์Šต๋‹ˆ๋‹ค.

์˜คํ”„๋ผ์ธ ๋ฏธ๋Ÿฌ ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ค์น˜์‹œ npm ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์— ์˜์กดํ•˜๋Š” ๊ฒƒ์„ ์ค‘์ง€ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

https://github.com/yarnpkg/yarn/pull/6817 ์€ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์—์„œ ๋ฐ˜ํ™˜ ๋œ ์‹ค์ œ ์ƒํƒœ ์ฝ”๋“œ๋ฅผ ํ‘œ์‹œํ•˜์—ฌ "์ˆ˜์ •"ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ์ž‘๋™ ํ•  ๋•Œ๊นŒ์ง€ ๋งน๋ชฉ์ ์œผ๋กœ ์žฌ ์‹œ๋„ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์•ˆ์ •๋œ ๊ฒƒ์„ ์„ ํ˜ธํ•˜๋ฏ€๋กœ ์žฌ์‹œ๋„ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ์ˆ˜ํ‰์„ ์— ๊ฐœ์„  ์‚ฌํ•ญ์ด ์—†๋‹ค๋ฉด ๊ทธ๋ ‡๊ฒŒํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ ๋™์•ˆ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ๋ณ€๊ฒฝ๋˜๊ณ ์ด ์Šค๋ ˆ๋“œ๊ฐ€ ์ƒ๋‹นํžˆ ์ปค์ง€๋ฏ€๋กœ์ด ํ† ๋ก ์„ ๋‹ซ๊ฒ ์Šต๋‹ˆ๋‹ค (์ƒˆ ์Šค๋ ˆ๋“œ๋ฅผ ์—ด์–ด ๊ฐ ์ƒํƒœ ์ฝ”๋“œ๋ฅผ ๊ฐœ๋ณ„์ ์œผ๋กœ ๋…ผ์˜ ํ•  ์ˆ˜ ์žˆ์Œ).

์ œ ๊ฒฝ์šฐ์—๋Š” ~/.npmrc ์ƒ์„ฑ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ yarn.lock ์žฌ์ƒ์„ฑ์€ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ„๋‹จํžˆ,

$ rm yarn.lock && yarn

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค,
rm -rf ./yarn.lock && yarn
๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ์œ„ํ•œ ์ผ์ž…๋‹ˆ๋‹ค!

๋ˆ„๊ตฌ์—๊ฒŒ๋‚˜ ๋„์›€์ด๋˜๋Š” ๊ฒฝ์šฐ :

  • npm (doh!)์— ๋กœ๊ทธ์ธํ•˜๋Š” ๊ฒƒ์„ ์žŠ์—ˆ์„ ๋•Œ์ด ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜์—๊ฒŒ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

์ €์—๊ฒŒ ๋ฌธ์ œ๋Š” service docker restart (Ubuntu 18.04)๋กœ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

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

๊ธฐ๋ณธ ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ node:8.12.0 ์—์„œ node:8.13.0 ์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ ์œ„ํ•ด PR์„ ์ˆ˜ํ–‰ ํ•œ ํ›„ ๋ชจ๋“  ๋นŒ๋“œ์—์„œ ๋™์ผํ•œ ์˜ค๋ฅ˜ (๋งค๋ฒˆ ๋‹ค๋ฅธ npm ๋ชจ๋“ˆ์˜ ์˜ค๋ฅ˜)๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋…ธ๋“œ ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ๊ฒ€์‚ฌ ํ•œ ๊ฒฐ๊ณผ ์‚ฌ์ „ ์„ค์น˜๋œ yarn ๋ฒ„์ „์ด v1.9.4 ์—์„œ v1.12.3 ๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ์Œ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฐธ์กฐ : ๊ด€๋ จ git commit . ์ด ์Šค๋ ˆ๋“œ์—์„œ ์ œ์•ˆ ๋œ ์ˆ˜์ • ์‚ฌํ•ญ ์ค‘ ์ผ๋ถ€๋ฅผ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์˜ค๋ฅ˜๋ฅผ ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. Dockerfile ์˜ yarn ๋ฒ„์ „ ์„ v1.9.4 ๋กœ ๊ฐ„๋‹จํžˆ ๋‹ค์šด ๊ทธ๋ ˆ์ด๋“œ ํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š”์ด ๋ฒ„์ „์˜ ์‹ค์ด ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ, ๋‚˜์—๊ฒŒ๋Š” ๋” ์ตœ๊ทผ์˜ ์‹ค ๋ฒ„์ „์ด ๋ฌธ์ œ๋ฅผ ์œ ๋ฐœํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. jfrog ์•„ํ‹ฐ ํŒฉํ† ๋ฆฌ๋ฅผ ํ†ตํ•ด ๊ฐœ์ธ ๋ชจ๋“ˆ์— ์•ก์„ธ์Šคํ•˜๊ธฐ์œ„ํ•œ ์ž๊ฒฉ ์ฆ๋ช…์„ ์ œ๊ณตํ•˜๋Š” .npmrc ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ๋ชจ๋“  npm ๋ชจ๋“ˆ์„ ๋ฏธ๋Ÿฌ๋ง / ํ”„๋ก์‹œํ•˜๋„๋ก ์•„ํ‹ฐ ํŒฉํ† ๋ฆฌ๋ฅผ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

์™œ ์ด๊ฒƒ์ด ๋‹ซํ˜€ ์žˆ์Šต๋‹ˆ๊นŒ? ์•„์ง๋„ ๊นจ๋Š” CI

๊ทธ ๋™์•ˆ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ๋ณ€๊ฒฝ๋˜๊ณ ์ด ์Šค๋ ˆ๋“œ๊ฐ€ ์ƒ๋‹นํžˆ ์ปค์ง€๋ฏ€๋กœ์ด ํ† ๋ก ์„ ๋‹ซ๊ฒ ์Šต๋‹ˆ๋‹ค (์ƒˆ ์Šค๋ ˆ๋“œ๋ฅผ ์—ด์–ด ๊ฐ ์ƒํƒœ ์ฝ”๋“œ๋ฅผ ๊ฐœ๋ณ„์ ์œผ๋กœ ๋…ผ์˜ ํ•  ์ˆ˜ ์žˆ์Œ).

์ด ์Šค๋ ˆ๋“œ๊ฐ€ ์œ ์šฉ์„ฑ์„ ์ง€๋‚˜์นœ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ณ„์†ํ•ด์„œ์ด ์Šค๋ ˆ๋“œ๋ฅผ ์ž ๊ธ€ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•Œ๋ฆผ :

  • ์ด ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€์žˆ๋Š” ๊ฒฝ์šฐ, ๋‹น์‹ ์€ ๋งค์šฐ ๊ฐ€๋Šฅ์„ฑ์ด ์˜ค๋ž˜๋œ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. 1.13+๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜์—ฌ ์ง„์ •ํ•œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ์–ป์œผ์‹ญ์‹œ์˜ค. ์–ด๋–ค ์ด์œ ๋กœ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๊ฐ€ HTTP 500์„ ๋ฐ˜ํ™˜ ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • Yarn ์ž์ฒด์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ์˜ค๋ฅ˜๊ฐ€ ๊ณ„์† ๋ฐœ์ƒํ•˜๋ฉด ์ƒˆ ์Šค๋ ˆ๋“œ๋ฅผ ์—ด๊ณ  ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ž์„ธํžˆ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋ณต์ œ๋ฌผ์„ ์ œ๊ณตํ•˜์ง€ ์•Š์œผ๋ฉด ์ˆ˜์ • ์‚ฌํ•ญ์„ ์ œ๊ณต ํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ์ง์ ‘ ์กฐ์‚ฌ๋ฅผ ์š”์ฒญํ•ด์•ผ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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