Yarn: ์˜ˆ๊ธฐ์น˜ ์•Š์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์š”์ฒญ์ด ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค. \ "404 ์ฐพ์„ ์ˆ˜ ์—†์Œ \" ".

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

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

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

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

error An unexpected error occurred: "http://registry.npmjs.org/@pepperhq/hmac-http-authentication/-/hmac-http-authentication-0.1.2.tgz: Request failed \"404 Not Found\"".

์•ž์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ๋‹ค๋ฅธ ๊ฐœ์ธ ์ €์žฅ์†Œ (๋ชจ๋‘ ๋™์ผํ•œ @ ๋ฒ”์œ„ ๋‚ด์— ์žˆ์Œ)๋Š” ์˜๋„ ํ•œ๋Œ€๋กœ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ด๊ฒƒ์ด ์ธ์ฆ ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

๋‚ด .npmrc ๋‚ด ํ”„๋กœ์ ํŠธ์˜ ๋ฃจํŠธ์— ๋‚ด ํฌํ•จํ•˜๋Š” _authToken ๊ฐ™์€ ์™ธ๋ชจ :

//registry.npmjs.org/:_authToken=TOKEN_HERE

์ด๋ฏธ ๋‹ค์Œ ํ™œ๋™์„ ์™„๋ฃŒํ–ˆ์Šต๋‹ˆ๋‹ค.

1) npm login ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์‹œ ๋กœ๊ทธ์ธํ•˜์—ฌ ์ƒˆ๋กœ์šด accessToken์„ ์–ป์Šต๋‹ˆ๋‹ค.
2) ํŒจํ‚ค์ง€ ์ด๋ฆ„์ด ์˜ฌ๋ฐ”๋ฅธ์ง€ ํ™•์ธ (ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด npm ์›น ์‚ฌ์ดํŠธ์—์„œ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค)
3) rm -rf node_modules && rm yarn.lock && yarn cache clean ๋‹ฌ๋ฆฌ๊ธฐ
4) ๋‚ด package.json์—์„œ ๋ฌธ์ œ๊ฐ€๋˜๋Š” ํŒจํ‚ค์ง€๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๋‹ค์‹œ yarn add ์‹œ๋„
5) ๋™๋“ฑํ•œ npm install --save ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํšจ๊ณผ๊ฐ€ ์žˆ์—ˆ๋‹ค.

ํ˜„์žฌ ๋™์ž‘์ด ๋ฒ„๊ทธ ์ธ ๊ฒฝ์šฐ ์žฌํ˜„ ๋‹จ๊ณ„๋ฅผ ์ œ๊ณตํ•˜์‹ญ์‹œ์˜ค.
์›์ธ์„ ์ž˜ ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์žฌํ˜„ ๋ฐฉ๋ฒ•์„ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. Discord ๋˜๋Š”์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์˜๊ฒฌ์—์„œ ๋” ์ž์„ธํžˆ ๋…ผ์˜ ํ•  ์˜ํ–ฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ์ƒ๋˜๋Š” ๋™์ž‘์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?
Yarn์ด npmjs ์—์„œ ๋‚ด ๋ชจ๋“  ๊ฐœ์ธ ์ €์žฅ์†Œ๋ฅผ ์„ค์น˜ํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•ฉ๋‹ˆ๋‹ค.

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

Yarn version: 
  0.20.3

Node version: 
  6.9.5

Platform: 
  darwin x64
needs-discussion triaged

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

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ €๋„ yarn.lock์„ ์‚ญ์ œํ•˜์—ฌ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

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

์ œ์ณ๋‘๊ณ , ํŒจํ‚ค์ง€๋Š” ๋ถ„๋ช…ํžˆ ์กด์žฌํ•˜๊ณ  yarn ๋Š” URL์— ๊ฒ€์ƒ‰ํ•˜๋ ค๋Š” ๋ฒ„์ „ ๋ฒˆํ˜ธ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋–ค ๋ฐฉ์‹ ์œผ๋กœ๋“  ํŒจํ‚ค์ง€์— ๋ช…ํ™•ํ•˜๊ฒŒ ์•ก์„ธ์Šคํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋ช‡ ๊ฐ€์ง€ ํ…Œ์ŠคํŠธ๋ฅผ ๋” ์‹คํ–‰ ํ•œ ๊ฒฐ๊ณผ Yarn ์‚ฌ์šฉํ•  ๋•Œ ํ•„์š”ํ•œ ๋‹ค๋ฅธ ์ €์žฅ์†Œ์—์„œ ๋™์ผํ•œ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ npm ์‚ฌ์šฉํ•˜๋ฉด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์ด๋กœ ์ธํ•ด ๋‚ด ์ €์žฅ์†Œ ํŠน์ • ๊ตฌ์„ฑ์ด ์•„๋‹ˆ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. Yarn ์œ„๋กœ ๋„˜์–ด๊ฐ€๋Š” ํŒจํ‚ค์ง€ ์ด๋ฆ„์ด๋‚˜ URL ์ธ์ฝ”๋”ฉ ๋“ฑ๊ณผ ๊ด€๋ จ์ด์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์—ฌ๊ธฐ ๋นจ๋Œ€๋ฅผ ์›€์ผœ ์ฅ๊ณ  ์žˆ์ง€๋งŒ ์ด๊ฒƒ์ด ๋ˆ„๊ตฐ๊ฐ€๋ฅผ ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉํ–ฅ์œผ๋กœ ๋ถ€๋”ช ํž ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€๋˜๋Š” ํŒจํ‚ค์ง€๋ฅผ ์ƒˆ ๋ฒ„์ „ ๋ฒˆํ˜ธ๋กœ ๋‹ค์‹œ ๊ฒŒ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค.

์™œ ๊ทธ๊ฒƒ์ด ๊ณ ์ณ ์กŒ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋””๋ฒ„๊น…์— ๋„์›€์ด ๋  ์ˆ˜ ์žˆ๋„๋ก ์—ฌ๊ธฐ์— ๋‚จ๊ฒจ ๋‘๊ฒ ์Šต๋‹ˆ๋‹ค.

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

๋˜ํ•œ ๋˜‘๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
์ผ๋ถ€ ๊ฐœ์ธ ๋ชจ๋“ˆ์€ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ชจ๋‘ ๋™์ผํ•œ @scope.

์šฐ๋ฆฌ๋Š” ๋ฐฉ๊ธˆ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๊ฒฝํ—˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋„์›€์ด ๋  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ผ๋ฉฐ ์—ฌ๊ธฐ์— ๋” ๋งŽ์€ ์ปจํ…์ŠคํŠธ

  • ์ž„์‹œ Docker ์ปจํ…Œ์ด๋„ˆ [Alpine Linux]์—์„œ ์‹คํ–‰๋˜๋Š” CI (Drone)์—์„œ yarn์„ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์ด ๋ฌธ์ œ๋Š” ์šฐ๋ฆฌ ์„œ๋น„์Šค ๊ฑด๋ฌผ ์ค‘ ํ•˜๋‚˜์—์„œ๋งŒ ๋ฐœ์ƒํ–ˆ์ง€๋งŒ ๋‹ค๋ฅธ ์„œ๋น„์Šค์—๋Š” ๋˜‘๊ฐ™์€ ์ข…์†์„ฑ ํŠธ๋ฆฌ (!)๊ฐ€ ์žˆ์–ด๋„ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
  • ๋™์ผํ•œ ์ €์žฅ์†Œ์— ๋Œ€ํ•ด Mac์— ์ˆ˜๋™ ์„ค์น˜ํ•˜๋ฉด ์ „ํ˜€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค (!)
  • ๋ฌธ์ œ๋Š” ๋‹จ์ผ ๊ฐœ์ธ ํŒจํ‚ค์ง€๋กœ ์ œํ•œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์œผ๋กœ ์œ„์—์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ์ƒˆ ๋ฒ„์ „์˜ ํŒจํ‚ค์ง€๋ฅผ ๊ฒŒ์‹œํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋ถˆํ–‰ํžˆ๋„ ๋นŒ๋“œ ์‹คํŒจ ํ›„ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ฆ‰์‹œ ํŒŒ๊ดด๋˜์–ด ์ž์„ธํ•œ yarn-error.log ์„ (๋ฅผ) ์–ป์„ ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด์ด ๋ฌธ์ œ๊ฐ€์žˆ๋Š” ๊ฒฝ์šฐ verbose ์„ค์น˜๋กœ ๋‹ค์‹œ ์‹œ๋„ํ•˜๊ณ  ์—ฌ๊ธฐ์— ๋กœ๊ทธ์ธ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. circleci 2.0์—์„œ ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ๋กœ์ปฌ์—์„œ ๋””๋ฒ„๊น…ํ•˜๋Š” ๊ด€๋ จ์—†๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค (cci์™€ local์˜ ์ปดํŒŒ์ผ ์ฐจ์ด).

  • ํ˜ธ์ŠคํŠธ OSX ์ปดํ“จํ„ฐ์—์„œ yarn ํ•˜๋ฉด ๋ชจ๋“  ๊ฒƒ์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
  • ์ปจํ…Œ์ด๋„ˆ (Ubuntu)์—์„œ yarn ๋•Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒ ํ•ฉ๋‹ˆ๋‹ค.
  • circleci 2.0 ์ธํ”„๋ผ์—์„œ ์‹คํ–‰๋˜๋Š” ^^ container (Ubuntu)์—์„œ yarn ํ•˜๋ฉด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

.npmrc ๋“ฑ์„ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋กœ์ปฌ์—์„œ ์‹คํ–‰๋˜๋Š” ์ปจํ…Œ์ด๋„ˆ์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์€ ์ •๋ง ํ—ค๋“œ ์Šคํฌ๋ž˜ ์ฒ˜์ž…๋‹ˆ๋‹ค.

Verbose๋Š” ๋‚ด๊ฐ€ ๋ฐœ๊ฒฌ ํ•  ์ˆ˜์žˆ๋Š” ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

root<strong i="17">@2adc7c09ff9a</strong>:~/af/spec/dummy# yarn --pure-lockfile --ignore-optional
yarn install v0.21.3
[1/4] Resolving packages...
[2/4] Fetching packages...
error An unexpected error occurred: "https://registry.yarnpkg.com/@alienfast/build/-/build-2.0.38.tgz: Request failed \"404 Not Found\"".
info If you think this is a bug, please open a bug report with the information provided in "/root/af/spec/dummy/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
root<strong i="18">@2adc7c09ff9a</strong>:~/af/spec/dummy# yarn --pure-lockfile --ignore-optional --verbose
yarn install v0.21.3
verbose 0.178 current time: 2017-03-01T20:22:52.715Z
[1/4] Resolving packages...
[2/4] Fetching packages...
verbose 0.798 Performing "GET" request to "https://registry.yarnpkg.com/@alienfast/build/-/build-2.0.38.tgz".
verbose 0.861 Performing "GET" request to "https://registry.yarnpkg.com/@alienfast/ui/-/ui-1.0.34.tgz".
verbose 0.894 Performing "GET" request to "https://registry.yarnpkg.com/react-relay/-/react-relay-0.10.0.tgz".
verbose 0.895 Performing "GET" request to "https://registry.yarnpkg.com/react-dom/-/react-dom-15.4.2.tgz".
verbose 0.919 Performing "GET" request to "https://registry.yarnpkg.com/eslint/-/eslint-3.15.0.tgz".
verbose 0.941 Performing "GET" request to "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.39.0.tgz".
verbose 0.951 Performing "GET" request to "https://registry.yarnpkg.com/@alienfast/material-ui/-/material-ui-0.16.87.tgz".
verbose 0.966 Performing "GET" request to "https://registry.yarnpkg.com/@alienfast/react-formal/-/react-formal-0.24.7.tgz".
verbose 1.003 Performing "GET" request to "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.23.0.tgz".
verbose 1.103 Performing "GET" request to "https://registry.yarnpkg.com/graphql/-/graphql-0.9.1.tgz".
verbose 1.178 Performing "GET" request to "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz".
verbose 1.206 Performing "GET" request to "https://registry.yarnpkg.com/material-ui/-/material-ui-0.16.7.tgz".
verbose 1.249 Performing "GET" request to "https://registry.yarnpkg.com/react-i18next/-/react-i18next-2.2.0.tgz".
verbose 1.261 Performing "GET" request to "https://registry.yarnpkg.com/react-relay-network-layer/-/react-relay-network-layer-1.4.0.tgz".
verbose 1.272 Performing "GET" request to "https://registry.yarnpkg.com/react-router/-/react-router-3.0.2.tgz".
verbose 1.696 Performing "GET" request to "https://registry.yarnpkg.com/react-router-relay/-/react-router-relay-0.13.5.tgz".
verbose 1.764 Performing "GET" request to "https://registry.yarnpkg.com/react-sizeme/-/react-sizeme-2.2.0.tgz".
verbose 2.063 Performing "GET" request to "https://registry.yarnpkg.com/recompose/-/recompose-0.22.0.tgz".
verbose 2.144 Error: https://registry.yarnpkg.com/@alienfast/build/-/build-2.0.38.tgz: Request failed "404 Not Found"
    at Request.handleRequestError (/root/.yarn/lib/fetchers/tarball-fetcher.js:231:20)
    at emitOne (events.js:96:13)
    at Request.emit (events.js:189:7)
    at Request.onRequestResponse (/root/.yarn/node_modules/request/request.js:986:10)
    at emitOne (events.js:96:13)
    at ClientRequest.emit (events.js:189:7)
    at HTTPParser.parserOnIncomingClient (_http_client.js:522:21)
    at HTTPParser.parserOnHeadersComplete (_http_common.js:99:23)
    at TLSSocket.socketOnData (_http_client.js:411:20)
    at emitOne (events.js:96:13)
    at TLSSocket.emit (events.js:189:7)
error An unexpected error occurred: "https://registry.yarnpkg.com/@alienfast/build/-/build-2.0.38.tgz: Request failed \"404 Not Found\"".
info If you think this is a bug, please open a bug report with the information provided in "/root/af/spec/dummy/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
root<strong i="21">@2adc7c09ff9a</strong>:~/af/spec/dummy# cat ~/.npmrc
registry=https://registry.npmjs.org/
//registry.npmjs.org/:_authToken=${NPM_TOKEN}
root<strong i="24">@2adc7c09ff9a</strong>:~/af/spec/dummy# echo $NPM_TOKEN
xxxxx-xxxx-xxxx-xxxx-xxxxxxxx

์—ฌ๊ธฐ์„œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. OSX์—์„œ๋Š” ๋กœ์ปฌ๋กœ ์ž‘๋™ํ•˜์ง€๋งŒ CircleCI ์ปจํ…Œ์ด๋„ˆ (circleci 1.0)์—์„œ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

yarn cache clean ์‹œ๋„-๋‚˜์ค‘์— ๋‹ค๋ฅธ ํŒจํ‚ค์ง€ ์„ค์น˜์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค.

yarn 0.18.1 ๋ฐ 0.21.3์—์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ yarnpkg ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ๊ตฌ์„ฑ์—์„œ ๋ฌด์–ธ๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ์—ฌ๊ธฐ ๋Œ“๊ธ€์—์žˆ๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ์ด ๋ฌธ์ œ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ CircleCI๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฏ€๋กœ CircleCI ๊ตฌ์„ฑ์— ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

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

registry=http://registry.npmjs.org/
//registry.npmjs.org/:_authToken=${NPM_TOKEN}
<strong i="8">@ourscope</strong>:registry=https://registry.npmjs.org/

์ฃผ๋ชฉํ•  ์ ์€ ์ผ๋ฐ˜ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์™€ ๊ฐœ์ธ ๋ฒ”์œ„ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์— ๋Œ€ํ•ด ํ•˜๋‚˜๊ฐ€ ๋ชจ๋‘ ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. @ourscope ๋ฅผ ์ž์‹ ์˜ ๊ฒƒ์œผ๋กœ ๋ณ€๊ฒฝํ•˜์‹ญ์‹œ์˜ค.

์ด๊ฒƒ์ด ๋ˆ„๊ตฌ์—๊ฒŒ ๋„์›€์ด๋˜๋Š”์ง€ ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค.

@rogchap ๋ฐฉ๊ธˆ ๊ท€ํ•˜์˜ ์†”๋ฃจ์…˜์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ์ด์ „๊ณผ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค :(

์Šค์ฝ”ํ”„ ์ด๋ฆ„์— ํ•˜์ดํ”ˆ์ด ์žˆ๋Š”๋ฐ ๊ทธ๊ฒŒ ๋ฒ”์ธ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

registry=http://registry.npmjs.org/
//registry.npmjs.org/:_authToken=${NPM_TOKEN}
@our-scope:registry=https://registry.npmjs.org/

@rogchap ์ด ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ์šฐ๋ฆฌ ์ƒํ™ฉ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

root<strong i="7">@f41305331cb8</strong>:~/af/spec/dummy# cat ~/.npmrc
registry=https://registry.npmjs.org/
//registry.npmjs.org/:_authToken=${NPM_TOKEN}
<strong i="8">@alienfast</strong>:registry=https://registry.npmjs.org/

0.20.4 ๋ฐ 0.21.3 ์‹คํŒจ ํ•จ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋ฌธ์ œ์—†์ด ์ €์—๊ฒŒ๋„ ํšจ๊ณผ๊ฐ€ ์žˆ๋‹ค๋Š” ์ ์„ ๊ฐ์•ˆํ•  ๋•Œ ์„œ๋ฒ„ ์ธก์—์„œ ๋ฌด์–ธ๊ฐ€๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํ™•์‹คํžˆ ์ด์ œ bug ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

  • ๋ฐฉ๊ธˆ '๋ฌธ์ œ๊ฐ€๋˜๋Š”'๋ฒ”์œ„ ๋ชจ๋“ˆ์˜ ์ƒˆ ๋ฒ„์ „์„ ๋ฐฐํฌํ–ˆ์ง€๋งŒ ๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
  • npm install ์‹คํ–‰ํ–ˆ๋Š”๋ฐ ๋ฌธ์ œ๊ฐ€์žˆ๋Š” ํ™˜๊ฒฝ์—์„œ ๋ชจ๋“ˆ์„ ๊ฐ€์ ธ ์˜ค๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ, ๋‚˜๋ฅผ ์œ„ํ•ด ์ˆ˜์ •๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค ... ๋‹ค์‹œ.

๋‹ค๋ฅธ ๊ฐœ์ธ ๋ชจ๋“ˆ์ด ์˜ฌ๋ฐ”๋ฅธ ๋ฒ„์ „์„ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ (์–ด๋”˜๊ฐ€์—์„œ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ฝ๊ณ  ์žˆ์–ด์•ผ ํ•จ) NPM๊ณผ ๋™์ผํ•œ tar URL์„ ๋‹ค์šด๋กœ๋“œํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜๋”๋ผ๋„ 404 ๋ฉ”์‹œ์ง€๋ฅผ ์ œ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฒˆ์—๋Š” .npmrc ์—์„œ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ (์ธ์ฆ ์ œ์™ธ)๋ฅผ ์ œ๊ฑฐ ํ•˜์—ฌ ์ž‘๋™ํ•˜๊ฒŒํ–ˆ์Šต๋‹ˆ๋‹ค!

์ผ๊ด€์„ฑ์ด ์ „ํ˜€์—†๊ณ , .npmrc ๋กœ ๋ฌด์ž‘์œ„๋กœ "์žฌ์ƒ"ํ•˜๋Š” ๊ฒƒ์€ ์ผ์‹œ์ ์œผ๋กœ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ €๋Š” Yarn์„ ํ™๋ณดํ•˜๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค.ํ•˜์ง€๋งŒ ์šฐ๋ฆฌ ํšŒ์‚ฌ์˜ ๋ชจ๋“  ์—”์ง€๋‹ˆ์–ด๋Š” Yarn์ด "์•ˆ์ •์ ", "์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ", "์‹ ๋ขฐํ•  ์ˆ˜ ์—†์Œ", "๋น„๊ณต๊ฐœ ๋ชจ๋“ˆ๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์Œ", "์‹คํŒจ"๋ผ๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค. CI ์„œ๋ฒ„ "๋“ฑ

๊ฐœ์ธ NPM ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๊ฐ€ ์‚ฌ์šฉ์ž ์—์ด์ „ํŠธ์™€ ํ•จ๊ป˜ "ํŽ‘ํ‚ค"ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค! ?? <-๊ฑฐ์นœ ์ถ”์ธก.

์ด๋ฅผ ๋” ์ž˜ ์ดํ•ดํ•˜๋ ค๋ฉด ํ•ต์‹ฌ ๊ธฐ์—ฌ์ž์˜ ์˜๊ฒฌ์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. @bestander , ์–ด๋–ค ํ†ต์ฐฐ๋ ฅ?

์šฐ๋ฆฌ๋Š” ๊ฐœ์ธ ํŒจํ‚ค์ง€๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ์ด ๊ธฐ๋Šฅ์€ ๋ˆˆ์— ๋„์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
Afaik ๋Œ€๋ถ€๋ถ„์˜ ๋ฌธ์ œ๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜์žˆ๋Š” ์ข‹์€ ๊ธฐํšŒ์ž…๋‹ˆ๋‹ค.
๋‚˜๋Š” npm ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๊ฐ€ UA๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ์‘๋‹ต์œผ๋กœ ๋ฌด์–ธ๊ฐ€๋ฅผ ํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ข‹์•„, ๊ทธ๋ž˜์„œ ๋‚˜๋Š” ์‹ค์„ ๊ฐˆ์•„์„œ ์•ฝ๊ฐ„ ๋‘˜๋Ÿฌ ๋ณด์•˜๋‹ค. tarball์„ ๊ฐ€์ ธ ์˜ค๊ธฐ ์ „์— ๋˜๋Š” ์ฒซ ๋ฒˆ์งธ ์š”์ฒญ์ด ์ „์†ก ๋œ ํ›„์— ํ† ํฐ์„ ์žƒ์–ด๋ฒ„๋ฆฐ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

yarn add v0.23.0-0
verbose 0.227 current time: 2017-03-06T20:25:18.877Z
info No lockfile found.
[1/4] Resolving packages...
โ  { authorization: 'Bearer MY_TOKEN_IS_HERE' } <<<<<----- here it uses my token for the request
verbose 0.409 Performing "GET" request to "https://registry.npmjs.org/@ovos-media%2flib-director".
verbose 1.306 Request "https://registry.npmjs.org/@ovos-media%2flib-director" finished with status code 200.
{} <--- token is gone
verbose 1.316 Performing "GET" request to "https://registry.npmjs.org/bluebird".
{} <--- token is gone
verbose 1.318 Performing "GET" request to "https://registry.npmjs.org/jwt-decode".
verbose 1.531 Request "https://registry.npmjs.org/bluebird" finished with status code 200.
verbose 1.572 Request "https://registry.npmjs.org/jwt-decode" finished with status code 200.
[2/4] Fetching packages...
https: /@ovos-media/lib-director/-/lib-director-0.4.1.tgz https://registry.yarnpkg.com/@ovos-media/lib-director/-/lib-director-0.4.1.tgz
{} <--- token is gone
verbose 1.597 Performing "GET" request to "https://registry.yarnpkg.com/@ovos-media/lib-director/-/lib-director-0.4.1.tgz".
verbose 2.663 Error: https://registry.yarnpkg.com/@ovos-media/lib-director/-/lib-director-0.4.1.tgz: Request failed "404 Not Found"
    at Request.res (/home/ubuntu/yarn/lib/fetchers/tarball-fetcher.js:232:20)
    at emitOne (events.js:90:13)
    at Request.emit (events.js:182:7)
    at Request.onRequestResponse (/home/ubuntu/yarn/node_modules/request/request.js:986:10)
    at emitOne (events.js:90:13)
    at ClientRequest.emit (events.js:182:7)
    at HTTPParser.parserOnIncomingClient (_http_client.js:469:21)
    at HTTPParser.parserOnHeadersComplete (_http_common.js:103:23)
    at TLSSocket.socketOnData (_http_client.js:359:20)
    at emitOne (events.js:90:13)
error An unexpected error occurred: "https://registry.yarnpkg.com/@ovos-media/lib-director/-/lib-director-0.4.1.tgz: Request failed \"404 Not Found\"".

์š”์ฒญ์ด ์ „์†ก๋˜๊ธฐ ์ „์— npm-registry.js์—์„œ authorization ํ—ค๋”๋ฅผ ๋ช…์‹œ ์ ์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ๋ชจ๋“  ๊ฒƒ์ด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์„œ๋ฒ„ ์ธก์ด ์•„๋‹Œ ์‹ค์— ์•ฝ๊ฐ„์˜ ๋ฒ„๊ทธ๊ฐ€์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ํŽธ์ง‘ํ•˜๋‹ค:

์ข‹์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ถ”๊ฐ€ ๊ฒ€์‚ฌ ํ›„ ๊ถŒํ•œ ํ—ค๋” ์„ค์ • ์—ฌ๋ถ€ ํ™•์ธ์ด npm-registry.js -> https://github.com/yarnpkg/yarn/pull/2598/files#diff ์—์„œ false๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์—์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. -b053bee294c216269844e5874039b6caR62
๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์€ yarnpkg ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ํ”„๋ก์‹œ๋ฅผ npmjs ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์™€ ๋น„๊ตํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

https://registry.yarnpkg.com/@ovos-media/lib-director/-/lib-director-0.4.1.tgz https://registry.npmjs.org/

์ข‹์•„, ๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋ฅผ ์œ„ํ•ด yarns ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„ ๋ƒˆ์Šต๋‹ˆ๋‹ค.
๊ธฐ๋ณธ์ ์œผ๋กœ @rogchap์ด ๊ฒŒ์‹œ ํ•œ ๋‚ด์šฉ์ด์ง€๋งŒ (์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ) ๋‹ค๋ฅธ ๋ฐฉํ–ฅ์œผ๋กœ :

registry=https://registry.npmjs.org/
@ovos-media:registry=https://registry.yarnpkg.com/
//registry.npmjs.org/:_authToken=your-auth-token

๋˜๋Š” ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋ฅผ ์™„์ „ํžˆ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

//registry.npmjs.org/:_authToken=your-auth-token

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

๋‹ค์Œ ๋‹จ๊ณ„๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?
ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ๋ฌธ์„œํ™”ํ•˜๊ฑฐ๋‚˜ Yarn์„ ๋ณ€๊ฒฝ ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

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

์‚ฌ์‹ค, ์Šคํฌ๋ž˜์น˜์ž…๋‹ˆ๋‹ค. ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ํ• ๋‹น์„ ์ œ๊ฑฐํ•˜๊ณ  ์ธ์ฆ ํ† ํฐ์ด์žˆ๋Š” ์ค„๋งŒ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์ด ํŠธ๋ฆญ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์  ์žฅ ์˜คํƒ€. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค @flipace!

@bestander ๋‚˜๋Š” ์•ž์œผ๋กœ ๋ฉฐ์น  ์•ˆ์— PR์„ ๋งŒ๋“ค๋ ค๊ณ  ๋…ธ๋ ฅํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.์ด ๊ฒฝ์šฐ ์›์‚ฌ์˜ ํ–‰๋™์€ ๊ทธ๋Ÿด ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ๊ท€ํ•˜์—๊ฒŒ๋„ ํšจ๊ณผ๊ฐ€ ์žˆ์Œ์„ ํ™•์ธํ•œ @pleunv ์—๊ฒŒ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

๋ถˆํ–‰ํžˆ๋„ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค ๐Ÿ˜ฟ

@willrstern .npmrc ๋ฅผ ๊ฒŒ์‹œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์•„, .yarnrc ์ œ๊ฑฐํ•˜๋ฉด ํšจ๊ณผ๊ฐ€์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1


registry "https://registry.npmjs.org/"
email <email>
lastUpdateCheck 1489181224804
username <username>

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

@flipace .npmrc ์€ ํ† ํฐ ์ „์šฉ ์ค„์„ ํฌํ•จํ•˜์—ฌ ์œ„์˜ ๋ชจ๋“  ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด์—ˆ์Šต๋‹ˆ๋‹ค.

~์ด ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ์ค‘ ์–ด๋Š ๊ฒƒ๋„ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ~

์‹ค์ œ๋กœ ์ด๊ฒƒ์„ ๋‚ด ๋„์ปค ํŒŒ์ผ์— ๋„ฃ์œผ๋ฉด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

RUN echo -e "registry=https://registry.npmjs.org/\n//registry.npmjs.org/:_authToken=\${NPM_AUTH_TOKEN}\nsatoshipay:registry=https://registry.npmjs.org/" > /usr/src/app/.npmrc
RUN yarn

๋ฌธ์ œ์˜ ๋ฒ”์œ„๋Š” @satoshipay

๋™๋ฃŒ์™€ ์ €๋Š”์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. v7.7.4 ๋…ธ๋“œ๋ฅผ ์„ค์น˜ํ•˜๊ณ  npm login ๋ฅผ ํ†ตํ•ด npm์— ๋‹ค์‹œ ๋กœ๊ทธ์ธ ํ•œ ํ›„ ๋ชจ๋“  ๊ฒƒ์ด ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

@Levino yarn config list ํ•˜๊ณ  yarn์ด .npmrc ํŒŒ์ผ์„ ์„ ํƒํ•˜๋Š”์ง€ ์‚ดํŽด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? # 521์—์„œ @BohdanTkachenko ๋Š” ๋ฌธ์ œ๋ฅผ ๋น„์Šทํ•˜๊ฒŒ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์ ์–ด๋„ ์ด๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค :)

์ปค๋ฎค๋‹ˆํ‹ฐ์˜ PR์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ํ•ต์‹ฌ ํŒ€์˜ ์•„๋ฌด๋„์ด ๋ฌธ์ œ๋ฅผ ์กฐ์‚ฌํ•˜๊ณ  ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@bestander ๋ฌธ์ œ๊ฐ€์žˆ์„ ์ˆ˜์žˆ๋Š” ํ•ต์‹ฌ ํŒ€์˜ ์กฐ์–ธ์ด ์žˆ์Šต๋‹ˆ๊นŒ?
ํ˜„์žฌ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ npm ๐Ÿ˜ž ์‚ฌ์šฉ์œผ๋กœ ๋Œ์•„๊ฐ€๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

package-resolver ๋˜๋Š” package-fetcher ์–ด๋”˜๊ฐ€์— ์žˆ์Šต๋‹ˆ๋‹ค.

2017 ๋…„ 5 ์›” 16 ์ผ ํ™”์š”์ผ 06:29, Roger Chapman [email protected]
์ผ๋‹ค :

@bestander https://github.com/bestander
๋ฌธ์ œ๊ฐ€์žˆ์„ ์ˆ˜์žˆ๋Š” ํ•ต์‹ฌ ํŒ€?
ํ˜„์žฌ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ npm ๐Ÿ˜ž ์‚ฌ์šฉ์œผ๋กœ ๋Œ์•„๊ฐ€๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

์ด ๋ฌธ์ œ๊ฐ€์žˆ๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ๋“ค์€ ํ”„๋กœ์ ํŠธ ๋””๋ ‰ํ† ๋ฆฌ์™€ ๊ทธ ์œ„์—์žˆ๋Š” ๋ชจ๋“  ์ƒ์œ„ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ .npmrc ํŒŒ์ผ์„ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ์˜ .npmrc ํŒŒ์ผ์„ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ํŒ€์›์ด์ด ๋ฌธ์ œ๋ฅผ ๊ฒช์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Š” ๋‹ค๋ฅธ .npmrc ํŒŒ์ผ์— ๋‹ค๋ฅธ ํ† ํฐ์„ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋˜ํ•œ ๋ณผ ๊ณณ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ yarn install ๋ฐ CI์—์„œ ๋ฒ”์œ„๊ฐ€ ์ง€์ •๋œ ๊ฐœ์ธ ํŒจํ‚ค์ง€ ์‚ฌ์šฉ์— ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด์ œ ๋‹ค์‹œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“  ํŒ€ ๊ตฌ์„ฑ์›์€ ์ž์‹ ์˜ ๋กœ์ปฌ .npmrc์—์„œ ๋ฒ”์œ„์— ๋Œ€ํ•œ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋กœ registry.npmjs.org ๋ฅผ ๊ตฌ์„ฑํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ด๋Š” yarn.lock์— ๋ฒ”์œ„๊ฐ€ ์ง€์ •๋œ ํŒจํ‚ค์ง€๋ฅผ ํฌํ•จํ•˜์—ฌ ๋ชจ๋“  ํŒจํ‚ค์ง€์— ๋Œ€ํ•ด registry.yarnpkg.com ๋งํฌ๊ฐ€ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค๋กœ ์ด์–ด์ง‘๋‹ˆ๋‹ค. ์žฌ๋ฏธ์žˆ๊ฒŒ๋„ ๋กœ์ปฌ์—์„œ ์ž‘๋™ํ–ˆ์ง€๋งŒ CI์—์„œ ๊นจ์กŒ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ yarn.lock์„ ์‚ญ์ œํ•˜๊ณ  ๋‚ด ์ปดํ“จํ„ฐ์—์„œ ๋‹ค์‹œ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ .npmrc ํŒŒ์ผ์˜ ๋ฒ”์œ„์— ๋Œ€ํ•ด registry.npmjs.org ๋ฅผ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ yarn.lock ํŒŒ์ผ์—๋Š” registry.npmjs.org ๋งํฌ ๋งŒ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ƒˆ๋กœ์šด yarn.lock์„ ๋ฐ€์—ˆ ๊ณ  CI๋Š” ์•„๋ฌด๋Ÿฐ ๋ฌธ์ œ์—†์ด ํ†ต๊ณผํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

๋˜ํ•œ cwd์— .npmrc ๊ฐ€ ์žˆ์œผ๋ฉด gitlab-ci์—์„œ ๋„์›€์ด๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋„์ปค ์ปจํ…Œ์ด๋„ˆ + yarn 0.26.1 ์—์„œ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค (Mac์—์„œ ๋กœ์ปฌ๋กœ ์„ค์น˜๊ฐ€ ์ž˜ ์ž‘๋™ ํ•จ).

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

<strong i="8">@binded</strong>:registry=https://registry.npmjs.com/
//registry.npmjs.org/:_authToken=${NPM_TOKEN}

NPM_TOKEN์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

====>> cat .npmrc
  #!/bin/bash -eo pipefail
cat .npmrc
//registry.npmjs.org/:_authToken=${NPM_TOKEN}
====>> build
  #!/bin/bash -eo pipefail
build
engines.node (package.json):  7
engines.npm (package.json):   unspecified (use default)
v7.10.0 is already installed.
Now using node v7.10.0 (npm v4.2.0)
default -> 7 (-> v7.10.0 *)
Using default npm version: 4.2.0
Resolving yarn version 0.26 via semver.io...
Downloading and installing yarn (0.26.1)...
Installed yarn 0.26.1
Installing node modules (yarn.lock)
yarn install v0.26.1
[1/4] Resolving packages...
[2/4] Fetching packages...
error An unexpected error occurred: "https://registry.yarnpkg.com/@binded/binded-client/-/binded-client-1.3.2.tgz: Request failed \"404 Not Found\"".
info If you think this is a bug, please open a bug report with the information provided in "/ci/project/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
Error: Exited with code 1
Step failed
Task failed

๋˜ํ•œ ๋‹ค์Œ .npmrc ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.

registry=http://registry.npmjs.org/
//registry.npmjs.org/:_authToken=${NPM_TOKEN}
<strong i="16">@binded</strong>:registry=https://registry.npmjs.com/

๊ด€๋ จ์„ฑ์ด ์žˆ๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ ๋‚ด yarn.lock ๋ชฉ๋ก ( https://registry.yarnpkg.com/... ๋Œ€์‹  https://registry.npmjs.com/... ) :

"@binded/binded-client@^1.3.2":
  version "1.3.2"
  resolved "https://registry.yarnpkg.com/@binded/binded-client/-/binded-client-1.3.2.tgz#0c29ed98436084b39420020a533df26da3ebbda3"

์—…๋ฐ์ดํŠธ : yarn.lock ์‚ญ์ œํ•˜๋ฉด ์„ค์น˜๊ฐ€ ์„ฑ๊ณตํ•ฉ๋‹ˆ๋‹ค.
์—…๋ฐ์ดํŠธ : [email protected] ์„ค์น˜๊ฐ€ ๋‚ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค (์ด์ „์— [email protected] ์‚ฌ์šฉํ–ˆ๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค)

@olalonde ๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ์ปดํ“จํ„ฐ์˜ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋ฅผ https://registry.npmjs.org/ ํ•˜๊ณ  yarn.lock ๋งŒ๋“ค๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

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

์ €๋„ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๊ฒช๊ณ  ํ•ด๊ฒฐํ•ด ๋ƒˆ๊ธฐ ๋•Œ๋ฌธ์— ์ œ ๊ฒฝํ—˜์„ ๊ณต์œ ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
๋ชจ๋“  random ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ @rogchap์ด ๋งํ–ˆ๋“ฏ์ด npm์œผ๋กœ ๋Œ์•„๊ฐ€๋Š” ๊ฒƒ์ด ์ €์—๊ฒŒ

npm yarn install ์„ฑ๊ณต์ ์œผ๋กœ ์„ค์น˜ ํ•œ ํ›„ 404 Not Found ์ œ๊ณต์„ ์ค‘์ง€ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋ฌด์Šจ ์ผ์ด ์ผ์–ด ๋‚ฌ๋Š”์ง€, ์–ด๋–ป๊ฒŒ ๊ณ ์ณ ์กŒ๋Š”์ง€ ์ „ํ˜€ ๋ชจ๋ฅธ๋‹ค.
์ด ๋ฌธ์ œ๋ฅผ ๊ณ„์† ์ฃผ์‹œํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€๊ฐ€์ด ์ˆ˜์ˆ˜๊ป˜๋ผ๋ฅผ ํ’€๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๋ฒ ์ŠคํŠธ,
Pgergov

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

์•ˆ๋…•ํ•˜์„ธ์š”, 0.27.5์—์„œ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์—ฌ๋Ÿฌ๋ถ„๊ณผ ๊ณต์œ ํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค. ์ฐธ๊ณ  : https://github.com/yarnpkg/yarn/issues/3765
์ด ๋ฌธ์ œ๋Š” ์ด์ œ ์ข…๊ฒฐ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŒ”๋กœ์šฐ ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค,

์˜ค๋Š˜๋„์ด ๋ฌธ์ œ๊ฐ€์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋ฅผ github tarball URL๋กœ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค. npmjs URL์ด ๋ฌด์—‡์ธ์ง€ ์ฐพ์„ ์ˆ˜ ์—†์–ด์„œ ์—ฌ๊ธฐ์—์žˆ๋Š” Github๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค.
https://github.com/{USER}/{REPO}/tarball/{BRANCH}

๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ €์™€ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€์žˆ์„ ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•˜์—ฌ ์—ฌ๊ธฐ์— ๋„ฃ์Šต๋‹ˆ๋‹ค.

์ตœ์‹  ๋ฒ„์ „ 0.27.5์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ Request failed 404 Not Found yarn ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋ฒ„์ „์„ 0.27.3์œผ๋กœ ๋‹ค์šด ๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

@panalbish๋Š” 0.28.2 ๋ฅผ ์‹œ๋„ํ•˜๊ฑฐ๋‚˜ ์ธ์ฆ ํ† ํฐ์„ ์—…๋ฐ์ดํŠธํ•˜์—ฌ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@panalbish ์ œ์•ˆ
@BYK 0.28.2์™€ 0.28.4๋ฅผ ์‹œ๋„ํ–ˆ์ง€๋งŒ ๋‘˜ ๋‹ค ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค. github์—์„œ ์ฝ”๋“œ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๋ ค๊ณ  ํ•  ๋•Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

yarn install v0.27.5
warning package.json: No license field
warning [email protected]: No license field
[1/4] Resolving packages...
[2/4] Fetching packages...
error An unexpected error occurred: "https://codeload.github.com/soda0289/typescript-eslint-parser/tar.gz/840978a594dd659cfa2b40d8672ce7a742864623: Request failed \"404 Not Found\"".

๋‚ด๊ฐ€ ์ถ”์ธกํ•ด์•ผํ•œ๋‹ค๋ฉด 404๋ฅผ ์œ ๋ฐœํ•˜๋Š” github ๋„๋ฉ”์ธ์— ์ธ์ฆ ํ† ํฐ์„ ๋ณด๋‚ด๋Š” ๊ฒƒ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜ ๋ฐค ๋” ์ž์„ธํžˆ ์‚ดํŽด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๊ฐ€ ๋ฌธ์ œ๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
https://github.com/yarnpkg/yarn/issues/3907

# 3907๊ณผ ์ค‘๋ณต๋ฉ๋‹ˆ๋‹ค.

yarn (๋˜๋Š” yarn install ) ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— yarn.lock ๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

yarn (๋˜๋Š” yarn install) ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— yarn.lock์„ ์ œ๊ฑฐํ•˜๋ฉด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ ์›์‚ฌ ์‚ฌ์šฉ์„ ์™„์ „ํžˆ ์ค‘๋‹จํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. yarn.lock ํŒŒ์ผ์€ "์žฌํ˜„ ๊ฐ€๋Šฅํ•œ ๋นŒ๋“œ"๋ฅผ ๋ณด์žฅํ•˜๋Š” ํŒŒ์ผ์ž…๋‹ˆ๋‹ค. ๋‹น์‹ ์€ ๊ทธ๊ฒƒ์„ ์‚ญ์ œํ•˜๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ข‹์•„, ์ง„์ •ํ•ด. ๋‚ด๊ฐ€ ์‚ฌ์šฉํ•˜๋ ค๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์ž์ฒด์— ๋‹ฌ๋ ค ์žˆ์Šต๋‹ˆ๋‹ค.
Btw๋Š” ๋นŒ๋“œ ์ž์ฒด์— package.json ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์•„์•ผํ•ฉ๋‹ˆ๊นŒ?

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

์ฆ‰, ์—ฌ๊ธฐ์—์„œ ์ถ”์ ํ•˜๋Š” ํ•ญ๋ชฉ์ด ๊ตฌ์„ฑ ๋งค๊ฐœ ๋ณ€์ˆ˜์™€ ๊ด€๋ จ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ์ž ๊ธˆ ํŒŒ์ผ์ด ๊ทธ ์ดํ›„๋กœ ์ œ๊ฑฐ ๋œ URL์„ ์ฐธ์กฐํ•˜๊ณ  ์žˆ์—ˆ์„๊นŒ์š”? ๊ฐ•์ œ ํ‘ธ์‹œ๋ฅผ ํ†ตํ•ด ์‚ญ์ œ ๋œ git ์ปค๋ฐ‹์ผ๊นŒ์š”?

์ด๊ฒƒ์€ ๋‚ด๊ฐ€ ์–ป์€ ์‹ค์ œ ๋ฉ”์‹œ์ง€์ž…๋‹ˆ๋‹ค.

vagrant @ homestead : ~ / Projects / l5b.dev $ ์›์‚ฌ
์›์‚ฌ ์„ค์น˜ v0.27.5
[1/4] ํŒจํ‚ค์ง€ ํ•ด๊ฒฐ ์ค‘ ...
[2/4] ํŒจํ‚ค์ง€ ๊ฐ€์ ธ ์˜ค๋Š” ์ค‘ ...
error ์˜ˆ๊ธฐ์น˜ ์•Š์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. " https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-2.7.0.tgz : ์š”์ฒญ ์‹คํŒจ"404 Not Found ""

Laravel ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ธ ์ €์žฅ์†Œ ์„ค์น˜๋ฅผ ๋‹ค์‹œ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค ( ์„ค์น˜ ๋‹จ๊ณ„ ). npm์€ localhost (vagrant)์™€ ์˜จ๋ผ์ธ ๋ชจ๋‘์—์„œ ์ž˜ ์ž‘๋™ํ–ˆ์ง€๋งŒ yarn์€ ํ•ด๋‹น ์˜ค๋ฅ˜๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

๋” ์ด์ƒ ๊ฒ€์ƒ‰ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

image

npm์—์„œ๋„ ์šด์ด ์—†์Šต๋‹ˆ๋‹ค.

image

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

ํ , npm install ์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ์ง€๋งŒ ๊ฒฝ๊ณ ๊ฐ€ ๋งŽ์ด ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ฒฝ๊ณ ๋Š” ์˜ค๋ฅ˜๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.
๋‚˜๋Š” ์—ฌ์ „ํžˆ ์ด๋Ÿฌํ•œ JS ๊ฒƒ๋“ค์„ ์žก์œผ๋ ค๊ณ  ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” jQuery ์‹œ๋Œ€์— ์„œ์„œ ์†๋„๋ฅผ ๋†’์—ฌ์•ผํ•ฉ๋‹ˆ๋‹ค.

์ข‹์•„, ์ง„์ •ํ•ด. ๋‚ด๊ฐ€ ์‚ฌ์šฉํ•˜๋ ค๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์ž์ฒด์— ๋‹ฌ๋ ค ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋ถˆ์พŒํ•˜์ง€ ์•Š๋‹ค๋Š” ๋œป์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ฐ์€ ๊ฒƒ์ด ์žˆ์œผ๋ฉด ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.

Btw๋Š” package.json์ด ๋นŒ๋“œ ์ž์ฒด์— ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์•„์•ผํ•ฉ๋‹ˆ๊นŒ?

https://www.sitepoint.com/yarn-vs-npm/ ์„ ์ฝ๊ณ  ๊ฐ€์žฅ ํฅ๋ฏธ๋กœ์šด ๋‹จ๋ฝ์„ ๊ฐ•์กฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

yarn.lock ํŒŒ์ผ
npm๊ณผ Yarn์ด ํ”„๋กœ์ ํŠธ์˜ ์ข…์†์„ฑ์„ ์ถ”์ ํ•˜๋Š” ํŒŒ์ผ ์ธ package.json์—์„œ ๋ฒ„์ „ ๋ฒˆํ˜ธ๊ฐ€ ํ•ญ์ƒ ์ •ํ™•ํ•œ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ๋Œ€์‹  ๋‹ค์–‘ํ•œ ๋ฒ„์ „์„ ์ •์˜ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒํ•˜๋ฉด ํŒจํ‚ค์ง€์˜ ํŠน์ • ์ฃผ ๋ฒ„์ „๊ณผ ๋ถ€ ๋ฒ„์ „์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์ง€๋งŒ npm์—์„œ ์ผ๋ถ€ ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜์žˆ๋Š” ์ตœ์‹  ํŒจ์น˜๋ฅผ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์˜๋ฏธ ๋ก ์  ๋ฒ„์ „ ๊ด€๋ฆฌ์˜ ์ด์ƒ์ ์ธ ์„ธ๊ณ„์—์„œ ํŒจ์น˜ ๋œ ๋ฆด๋ฆฌ์Šค์—๋Š” ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ํฌํ•จ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ถˆํ–‰ํžˆ๋„ ์ด๊ฒƒ์€ ํ•ญ์ƒ ์‚ฌ์‹ค์ด ์•„๋‹™๋‹ˆ๋‹ค. npm์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ „๋žต์€ ๋™์ผํ•œ package.json ํŒŒ์ผ์„ ๊ฐ€์ง„ ๋‘ ๋Œ€์˜ ์‹œ์Šคํ…œ์— ๋‹ค๋ฅธ ๋ฒ„์ „์˜ ํŒจํ‚ค์ง€๊ฐ€ ์„ค์น˜๋˜์–ด ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํŒจํ‚ค์ง€ ๋ฒ„์ „ ๋ถˆ์ผ์น˜๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ •ํ™•ํžˆ ์„ค์น˜๋œ ๋ฒ„์ „์ด ์ž ๊ธˆ ํŒŒ์ผ์— ๊ณ ์ •๋ฉ๋‹ˆ๋‹ค. ๋ชจ๋“ˆ์ด ์ถ”๊ฐ€ ๋  ๋•Œ๋งˆ๋‹ค Yarn์€ yarn.lock ํŒŒ์ผ์„ ์ƒ์„ฑ (๋˜๋Š” ์—…๋ฐ์ดํŠธ)ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒํ•˜๋ฉด package.json์— ์ •์˜ ๋œ ํ—ˆ์šฉ ๋œ ๋ฒ„์ „์˜ ๋ฒ”์œ„๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์ด ๋˜‘๊ฐ™์€ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๋„๋ก ๋ณด์žฅ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
npm์—์„œ npm shrinkwrap ๋ช…๋ น์€ ์ž ๊ธˆ ํŒŒ์ผ๋„ ์ƒ์„ฑํ•˜๊ณ  npm install์€ Yarn์ด yarn.lock์„ ๋จผ์ € ์ฝ๋Š” ๋ฐฉ์‹๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ package.json์„ ์ฝ๊ธฐ ์ „์— ํ•ด๋‹น ํŒŒ์ผ์„ ์ฝ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์ค‘์š”ํ•œ ์ฐจ์ด์ ์€ Yarn์€ ํ•ญ์ƒ yarn.lock์„ ๋งŒ๋“ค๊ณ  ์—…๋ฐ์ดํŠธํ•˜๋Š” ๋ฐ˜๋ฉด, npm์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ•˜๋‚˜๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ  npm-shrinkwrap.json์ด ์กด์žฌํ•  ๋•Œ๋งŒ ์—…๋ฐ์ดํŠธํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‹น์‹ ์ด ๋นŒ๋“œ "์ž„์˜"ํ”ผํ•  ๋ฒ„์ „์„ ๋‹ฌ์•„, ๋Œ€์‹ ์˜ ์ œ๊ฑฐ์— ๋Œ€ํ•œ ์ƒ๊ด€ ์—†์–ด ๊ทธ๋ž˜์„œ ๊ฒฝ์šฐ yarn.lock ํŒŒ์ผ์„ ์‹คํ–‰ yarn ๋‹น์‹ ์€ ์žฅ์†Œ์— ํŒŒ์ผ์„๋‘๊ณ  ์‚ฌ์šฉํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค npm install ( yarn.lock ํŒŒ์ผ ๋ฌด์‹œ)

ํ”„๋กœ์ ํŠธ๊ฐ€ ์˜จ๋ผ์ธ ์–ด๋”˜๊ฐ€์— ์žˆ์Šต๋‹ˆ๊นŒ?

@Tpojka ๋Š” yarn.lock ํŒŒ์ผ๊ณผ node_modules ๋กœ์ปฌ (!)์„ ์ œ๊ฑฐํ•œ ๋‹ค์Œ ๋กœ์ปฌ์—์„œ yarn ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ƒˆ yarn.lock ํŒŒ์ผ์„ ์ปค๋ฐ‹ํ•˜๊ณ  ๋„์›€์ด๋˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

๋ฐฐ๊ฒฝ : ์ด๋ ‡๊ฒŒํ•˜๋ฉด ๋ˆ„๋ฝ ๋œ ํŒจํ‚ค์ง€์˜ ๊ณ ์ • ๋œ ๋ฒ„์ „์ด package.json ์ •์˜ ๋œ ๋ฒ„์ „ ๋ฒ”์œ„์™€ ์—ฌ์ „ํžˆ ํ˜ธํ™˜๋˜๋Š” ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ yarn.lock ๊ณ ์ • ๋œ ํ•ญ๋ชฉ์ด ๊ฒŒ์‹œ ์ทจ์†Œ ๋œ ๊ฒฝ์šฐ ์ƒˆ ํ•ญ๋ชฉ์ด ๊ฑฐ๊ธฐ์— ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ, ์ €๋Š”์ด ์ด์ƒํ•œ ๋ฌธ์ œ ๋•Œ๋ฌธ์— ์˜ค๋žซ๋™์•ˆ ์›์‚ฌ 0.18์„ ์‚ฌ์šฉํ•ด ์™”์œผ๋ฉฐ yarn.lock์„ ํ•œ ๋ฒˆ ์ œ๊ฑฐ-์žฌ์ฐฝ์กฐํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์–ด๋–ป๊ฒŒ ๋“  ๋‚ด๊ฐ€ ์•Œ ์ˆ˜์žˆ๋Š” ํ•œ ์˜ค๋ž˜๋œ ์›์‚ฌ ๋ฒ„์ „์˜ ์ž ๊ธˆ ํŒŒ์ผ๊ณผ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

@sottbessler ๋ถˆํ–‰ํžˆ๋„ ์ด๊ฒƒ์€ ๋ฌด์ž‘์œ„๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. ๋•Œ๋กœ๋Š” yarn.lock์˜ ์ œ๊ฑฐ๊ฐ€ ์ž‘๋™ํ•˜์ง€๋งŒ ๋•Œ๋กœ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ญ”๊ฐ€ ์ด์ƒํ•œ ์ผ์ด ๋ฒŒ์–ด์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํŒจํ‚ค์ง€๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์ง€๋งŒ (๋‹ค์šด๋กœ๋“œ ํ•  ๋ฒ„์ „์„ ์•Œ๊ณ  ์žˆ์œผ๋ฏ€๋กœ) tar ํŒŒ์ผ์˜ 404์ž…๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ์— ์ง๋ฉดํ•˜์—ฌ Mac ์ปดํ“จํ„ฐ์—์„œ๋Š” ์ž‘๋™ํ–ˆ์ง€๋งŒ ์„œ๋ฒ„์—์„œ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

https://github.com/yarnpkg/yarn/issues/3765#issuecomment -327890328 ๋ฐ https://github.com/yarnpkg๋ฅผ ๋”ฐ๋ผ yarn v1.0.1 (๋กœ์ปฌ, CI ๋ฐ Heroku ๋นŒ๋“œ ํŒฉ)์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

always-auth=true
https://registry.npmjs.org/:_authToken=${NPM_TOKEN}

์—ฌ๊ธฐ์— ์—ฌ์ „ํžˆ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

.npmrc ํŒŒ์ผ์— always-auth=true ์„ (๋ฅผ) ์ถ”๊ฐ€ํ•˜๋ ค๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ //registry.npmjs.org/:_authToken=... ์•ž์— ๋ช…์‹œ์ ์ธ https: ๋ฅผ ์ถ”๊ฐ€ํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ๋„ ์ฐจ์ด๋ฅผ ๋งŒ๋“ค์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

Yarn 0.27.3 ์—์„œ๋Š” ์ž˜ ์ž‘๋™ํ•˜์ง€๋งŒ 1.0.0 + ๋ชจ๋“  ๊ฒƒ์—๋Š”์ด ๋ฌธ์ œ๊ฐ€์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค (ํ˜„์žฌ yarn 1.2.1 ).

์—ฌ๊ธฐ์— ๋ญ”๊ฐ€ ๋น ์กŒ๋‚˜์š”?

.npmrc ์ œ์™ธํ•˜๊ณ  //registry.npmjs.org/:_authToken=${NPM_TOKEN} .npmrc ์—์„œ ๋ชจ๋“  ํ•ญ๋ชฉ์„ ์ œ๊ฑฐํ•˜์‹ญ์‹œ์˜ค. ์ด๊ฒƒ์€ yarn 1.0.0+์—์„œ ๊ฐœ์ธ @ ๋ฒ”์œ„ ํŒจํ‚ค์ง€ (Unix / Windows / OSX)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ง€์†์ ์œผ๋กœ ์ž‘๋™ํ•˜๋Š” ์œ ์ผํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@pleunv ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! Yarn 1.3.2 ์‚ฌ์šฉํ•˜์—ฌ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์ง€๋งŒ์ด ๋ช…๋ น๋„ ์‹คํ–‰ ํ•œ ๊ฒฝ์šฐ ์—๋งŒ :

yarn config set registry https://registry.npmjs.org

๋‚ด ์ธ์ƒ์€ ๊ธฐ๋ณธ Yarn ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๊ฐ€ npmjs.org์˜ ํ”„๋ก์‹œ๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ด๊ฒƒ์ด ์™œ ํ•„์š”ํ•œ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ์ œ ๊ฒฝ์šฐ์—๋Š” ์ ˆ๋Œ€์ ์œผ๋กœ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค (ํ…Œ์ŠคํŠธ๋ฅผ ๊ฑฐ์น˜๊ฑฐ๋‚˜ ์ œ์™ธ).

๋” ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์ด๊ฒƒ์— ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค๋Š” ๊ฒƒ์„ ๋ฏฟ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋ชจ๋“  ๋น„ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ๊ฐ€ ์ด๊ฒƒ์— ๊ฑธ๋ ค ๋„˜์–ด ์งˆ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.?!?

๋‚˜๋Š” ๋ฐฐํฌ ( ์ฆ‰, ๋นŒ๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” Dockerfile ๋‚ด๋ถ€)์—์„œ๋งŒ ์ด๊ฒƒ์„ ํ…Œ์ŠคํŠธํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ณง ์ œ ๊ฐœ๋ฐœ ๋จธ์‹ ์—์„œ ์‹œ๋„ํ•ด ๋ณผ ๊ฒƒ์ž…๋‹ˆ๋‹ค (์˜ค๋Š˜ ์•„์นจ์ด ๋ฌธ์ œ๋ฅผ ํŒŒ์•…ํ•˜๊ธฐ ์œ„ํ•ด ํ•œ ์‹œ๊ฐ„ ์ด์ƒ์ด ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค ๐Ÿ˜ข).

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

@BYK๊ฐ€ ๋ˆ„๋ฝ๋˜์ง€ ์•Š๋Š” ํ•œ ์ด๋Ÿฌํ•œ ํ…Œ์ŠคํŠธ ์‚ฌ๋ก€๋Š” ํ•„์š”์— ๋”ฐ๋ผ ๊ฐœ์ธ ์ €์žฅ์†Œ๊ฐ€ ํ•„์š”ํ•˜๋ฉฐ yarn ์„ ์„ฑ๊ณต์ ์œผ๋กœ ํ…Œ์ŠคํŠธํ•˜๋ ค๋ฉด ์ผ์ข…์˜ ๊ฐœ์ธ ์•ก์„ธ์Šค ํ† ํฐ์„ ๊ณต์œ ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๊ปํ•ด์•ผ ์–ด์ƒ‰ํ•ด ๋ณด์ž…๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์€ Yarn ํ”„๋กœ์ ํŠธ ์ž์ฒด๊ฐ€ (์ €๋ ดํ•˜๊ณ  ์ตœ์†Œํ•œ์˜ ์กฐ์ง ๊ณ„์ •์„ ํ†ตํ•ด) ์ผ๋ถ€ ๊ฐœ์ธ ์ €์žฅ์†Œ๋ฅผ ์„ค์ •ํ•˜์—ฌ CircleCI ๋˜๋Š” ๋กœ์ปฌ dev /๋ฅผ ํ†ตํ•ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด ์•ก์„ธ์Šค ํ† ํฐ์„ ์ œ๊ณตํ•˜์—ฌ ์ด๋Ÿฌํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ ํ•  ์ˆ˜์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ. ์ด๋ ‡๊ฒŒํ•˜๋ฉด ํ† ํฐ์ด๋˜๊ณ  ๋‹ค๋ฅธ ์‚ฌ๋žŒ๊ณผ ๊ณต์œ  ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” ๋‹ค๋ฅธ ์ œ์•ˆ์— ์—ด๋ ค ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋ฌผ๊ฑด์„ ์ •๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ž˜ ๋ชจ๋ฆ…๋‹ˆ๋‹ค.

์˜ˆ, ๊ฐœ์ธ์šฉ ๋ฒ”์œ„๋กœ ์ธํ•ด ์žฌํ˜„์„ ์ œ๊ณตํ•˜๊ธฐ๊ฐ€ ์•ฝ๊ฐ„ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ์–ด๋Š ์ชฝ์ด๋“ , ์šฐ๋ฆฌ๋Š” ๊ธฐ๋ณธ nodeJS ๋„์ปค ์ปจํ…Œ์ด๋„ˆ์˜ ๋น„๊ณต๊ฐœ ๋ฒ”์œ„ ํŒจํ‚ค์ง€์™€ ํ•จ๊ป˜ CI์— ์ด๊ฒƒ์„ ๊ฐ€์ง€๊ณ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

@BYK ํ•จ๊ป˜ ์ œ๊ณต๋˜๋Š” repro-repo์™€ ํ•จ๊ป˜ Bintray npm ์ €์žฅ์†Œ์˜ ํ‰๊ฐ€ํŒ์„ ์„ค์ •ํ•˜๊ณ  ๋„์›€์ด ๋  ๊ฒฝ์šฐ ๋ฉ”์ผ๋กœ ์•ก์„ธ์Šค ํ‚ค๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@SpainTrain ๊ณ ๋งˆ์›Œ์š”, ์„ค์ •

always-auth=true
<strong i="7">@scope</strong>:always-auth=true

์ƒ๋‹จ์— .npmrc ํ•จ๊ป˜ ๊ณ ์ • yarn v1.3.2

๋‚ด๊ฐ€ ์—…๋ฐ์ดํŠธ ํ•  ๋•Œ ๋‚ด ์ƒํ™ฉ์—์„œ, ๋ฌธ์ œ๋Š” ๋„๋ง ๊ฐ”์–ด์š” yarn.lock ๋น„๊ณต๊ฐœ๋กœ ํŒจํ‚ค์ง€๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด npmjs.com ๋Œ€์‹  yarnpkg.com ๊ฐ™์€๋ฅผ -

"@myco/pak1@>=0.0.8":
  version "0.0.11"
  resolved "https://registry.yarnpkg.com/@myco/pak1/-/pak1-0.0.11.tgz#8b5c53bd7378d7f00554fd4813ad9d332d0d87dc"
                             ^^^^^^^ change this
  resolved "https://registry.npmjs.com/@myco/pak1/-/pak1-0.0.11.tgz#8b5c53bd7378d7f00554fd4813ad9d332d0d87dc"
  dependencies:
    lodash "4.*"

์ด ์†”๋ฃจ์…˜ ์ค‘ ์–ด๋Š ๊ฒƒ๋„ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๊ฐœ์ธ ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋‹จ์ง€ ๊ณต์šฉ ํŒจํ‚ค์ง€์˜ ๊ณต์šฉ ํฌํฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. yarn.lock์„ npmjs.com์„ ์ฐธ์กฐํ•˜๋„๋ก ๋ณ€๊ฒฝํ•˜๊ณ  yarn-install ๋‹จ๊ณ„ ์ „์— yarn ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์„ค์ •์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

CircleCI๋Š” ์–ด๋–ค ์ด์œ ๋กœ ์–€ ์„ค์น˜ ๋‹จ๊ณ„์—์„œ "์ฝ”๋“œ๋กœ๋“œ"github URL์—์„œ ๊ฐ„ํ—์ ์œผ๋กœ 404๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

๋˜ํ•œ @xogeny๊ฐ€ ์ œ์•ˆํ•œ๋Œ€๋กœ yarn config set registry https://registry.npmjs.org ๋ฅผ ์‹คํ–‰ ํ•œ ํ›„ yarn add @org/priv-module ๊ฐ€ ๋” ์ด์ƒ 404s๊ฐ€ ์•„๋‹ˆ๊ณ  ํŒจํ‚ค์ง€๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์น˜ํ•˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ํฅ๋ฏธ๋กœ์šด ๋ถ€๋ถ„์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์›๋ž˜ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ( yarn config set registry https://registry.yarnpkg.com )๋กœ ๋‹ค์‹œ ์ „ํ™˜ํ•˜๊ณ  rm -rf *; yarn cache clean ๋ฐ yarn add @org/priv-module ๋‹ค์‹œ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋” ์ด์ƒ 404๋ฅผ ์žฌํ˜„ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ฆ‰ ์„ค์น˜๋จ ๋ฐ”๋ฅด๊ฒŒ. ๋‚˜๋Š” ๋‚ด๊ฐ€ ์—ฌ๊ธฐ์„œ ๋ฏธ์ณค๋‹ค๊ณ  ํ™•์‹ ํ•œ๋‹ค. yarn add @org/priv-module ๋Š” ์ฒ˜์Œ์— 404๋ฅผํ–ˆ๋‹ค.

registry.yarnpkg.com ํ”„๋ก์‹œ๋Š” registry.npmjs.org ์ •ํ™•ํžˆ ์–ด๋–ป๊ฒŒํ•ฉ๋‹ˆ๊นŒ? ์„ฑ๊ณต์ ์ธ ๊ฐ€์ ธ ์˜ค๊ธฐ ํ›„ ์ผ๋ถ€ ์บ์‹œ๊ฐ€ ์ฑ„์›Œ์ง„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๊นŒ?

์ €๋Š” macOS 10.13.2์—์„œ v1.3.4 ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ .npmrc ๋Š” ํ‰๋ฒ”ํ•œ 'ol //registry.npmjs.org/:_authToken={auth token}

์—ฌ๊ธฐ์—๋„ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ TravisCI์˜ ๋กœ๊ทธ์ž…๋‹ˆ๋‹ค.

$ node --version
v8.9.4
$ npm --version
5.6.0
$ nvm --version
0.33.8
before_install.1
0.42s$ yarn config set registry https://registry.npmjs.org
yarn config v1.3.2
success Set "registry" to "https://registry.npmjs.org".
before_install.2
0.43s$ yarn cache clean
yarn cache v1.3.2
success Cleared cache.
$ yarn
yarn install v1.3.2
[1/4] Resolving packages...
[2/4] Fetching packages...
error An unexpected error occurred: "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz: Request failed \"404 Not Found\"".
info If you think this is a bug, please open a bug report with the information provided in "/home/travis/build/grundiss/contenter/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

์žฌ๋ฏธ์žˆ๋Š” ์  : ๋กœ์ปฌ์—์„œ ๋ชจ๋“  ๊ฒƒ์ด ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์™„๋ฃŒ๋ฅผ ์œ„ํ•ด ์—ฌ๊ธฐ์— ๋ช‡ ๊ฐ€์ง€ ์‹คํŒจํ•œ circleci ๋นŒ๋“œ๊ฐ€ ์žˆ์œผ๋ฉฐ 404 ํŒจํ‚ค์ง€๊ฐ€ ํ•ญ์ƒ ๋™์ผํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.

https://circleci.com/gh/EnoahNetzach/gnodsidfjgi/5
https://circleci.com/gh/EnoahNetzach/gnodsidfjgi/7

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

์™€. ๋‚ด ๋ฌธ์ œ๋Š”์ด ๋ฌธ์ œ์˜ ์ผ๋ถ€๊ฐ€ ์•„๋‹ˆ๋ผ ๋” ์„ธ๊ณ„์ ์ธ ๋ฌธ์ œ์˜ ์ผ๋ถ€์ธ ๊ฒƒ์œผ๋กœ ๋ฐํ˜€์กŒ์Šต๋‹ˆ๋‹ค : https://github.com/floatdrop/pinkie/issues/18

์  ์žฅ, ์ด์ œ ์šฐ๋ฆฌ๋„์ด ๋ฌธ์ œ๋ฅผ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ์ธ์šฉ ๋ฒ”์œ„ ํŒจํ‚ค์ง€. ๋ฌด์ž‘์œ„ ์žฌ์ƒ-๋•Œ๋กœ๋Š” ์ž‘๋™ํ•˜์ง€๋งŒ (์ผ๋ถ€ ๋ฒ„์ „์—์„œ๋Š”) ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ์—์„œ์ด ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. URL์„ ์ˆ˜๋™์œผ๋กœ ์ž…๋ ฅ ํ•  ๋•Œ 404๋ฅผ ์–ป์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ์ดํ•ฉ๋‹ˆ๋‹ค.

Trace:
  Error: https://codeload.github.com/types/npm-v8flags/tar.gz/de224ae1cd5fd7dbb4e7158a6cc7a29e5315930d: Request failed "404 Not Found"
      at Request.handleRequestError (C:\Users\stewx\AppData\Roaming\nvm\v6.10.0\node_modules\yarn\lib\fetchers\tarball-fetcher.js:203:20)
      at emitOne (events.js:96:13)
      at Request.emit (events.js:188:7)
      at Request.onRequestResponse (C:\Users\stewx\AppData\Roaming\nvm\v6.10.0\node_modules\yarn\node_modules\request\request.js:1068:10)
      at emitOne (events.js:96:13)
      at ClientRequest.emit (events.js:188:7)
      at HTTPParser.parserOnIncomingClient (_http_client.js:474:21)
      at HTTPParser.parserOnHeadersComplete (_http_common.js:99:23)
      at TLSSocket.socketOnData (_http_client.js:363:20)
      at emitOne (events.js:96:13)

์šฐ๋ฆฌ๋Š” URL์„ ์•ฝ๊ฐ„ ์ „ํ™˜ํ•˜์—ฌ ์ด์™€ ๊ฐ™์€ ๋ชจ๋“  ์˜ค๋ฅ˜๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. tar / gz๋ฅผ ํ”ผํ•˜๊ณ  tarball์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

"package_name":"https://github.com/somebody/package_name/tarball/master"

ํŒจํ‚ค์ง€๊ฐ€ npmjs.org์—์„œ ๋น„๊ณต๊ฐœ๋กœ ํ˜ธ์ŠคํŒ…๋˜๋Š” ๊ฒฝ์šฐ .npmrc์—์„œ <strong i="5">@scope</strong>:registry=https://registry.npmjs.org/ ์ค„์„ ์ œ๊ฑฐํ•˜๋ฉด ๋„์›€์ด๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ์ด๊ฒƒ์€ yarnpkg๊ฐ€ npmjs.org์˜ CDN์ด๋˜๋Š” ๋ฌธ์ œ ๋•Œ๋ฌธ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ์˜ค๋Š˜ ์ด๊ฒƒ์„ ์ „์‹œํ•˜๊ณ ์žˆ๋‹ค
error An unexpected error occurred: โ€œhttps://registry.yarnpkg.com/@types/webpack/-/webpack-3.8.10.tgz: Request failed \โ€œ404 Not Found\โ€œโ€.
๊ฐœ์ธ ์ €์žฅ์†Œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค :(

๋‚˜๋ฅผ ์œ„ํ•ด +1. ์˜ค๋Š˜๋„ ๊ฒฝํ—˜ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. CI์— ์›นํŒฉ์„ ์„ค์น˜ํ•˜๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ์ตœ๊ทผ ์‹œ๋„

error An unexpected error occurred: "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.1.1.tgz: Request failed \"404 Not Found\"".

https://github.com/yarnpkg/yarn/issues/5530 ์—์„œ ๋…ผ์˜๋˜๊ณ 

์ œ ๊ฒฝ์šฐ์—๋Š” ํŠน์ • ๋ฒ”์œ„์— ๋Œ€ํ•œ ๊ฐœ์ธ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋ฅผ ์ •์˜ํ•œ ๋กœ์ปฌ .npmrc ๊ฐ€ ์žˆ์—ˆ๋Š”๋ฐ ํŒŒ์ผ ๋งจ ์œ„์— registry=https://registry.npmjs.org/ ์ถ”๊ฐ€ํ•˜๋ฉด๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฅผ ์•ผ๊ธฐํ•˜๋Š”:

# .npmrc
registry=https://registry.npmjs.org/

<strong i="8">@acme</strong>:registry=https://acme.jfrog.io/acme/api/npm/npm/
//acme.jfrog.io/acme/api/npm/npm/:_auth=YYYYYYYYYYYYYYYYYYYYYYYYYY
//acme.jfrog.io/acme/api/npm/npm/:username=username
//acme.jfrog.io/acme/api/npm/npm/:[email protected]
//acme.jfrog.io/acme/api/npm/npm/:always-auth=true

CircleCI์™€ ํ•จ๊ป˜ ์ž‘์—…ํ•˜๋ฉด ์›์‚ฌ ์„ค์น˜์™€ ํ•จ๊ป˜ 404๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

yarn.lock ์ œ๊ฑฐ

์ด๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค. ์ข€ ๋” ํŒŒ๋‹ค๊ฐ€ ์‹ค ์ž๋ฌผ์‡ ์— ์ž˜๋ชป๋œ URL์ด ์žˆ์Œ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค.

์›์‚ฌ ์ž ๊ธˆ์€ CircleCI์—์„œ 404'd (๋กœ์ปฌ์—์„œ ์ž‘๋™ํ•˜๋Š” ์ด์œ ๊ฐ€ ์—†์Œ)ํ•˜๋Š” registry.yarnpkg.com์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

ํŠธ๋ฆญ์„ ์ˆ˜ํ–‰ ํ•œ ๊ฒฐ๊ณผ ๊ตฌ์„ฑ :

- run: echo "//registry.npmjs.org/:_authToken=$NPM_AUTH_TOKEN" > ~/.npmrc
- run: yarn config set registry https://registry.npmjs.org/
- run: yarn

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ €๋„ yarn.lock์„ ์‚ญ์ œํ•˜์—ฌ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋ฅผ ์œ„ํ•ด ์‹คํŒจํ•œ ๋ช…๋ น์€ yarn add gatsby-plugin-react-helmet react-helmet ์ž…๋‹ˆ๋‹ค.

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

์›์‚ฌ ์ €์žฅ์†Œ์—์„œ ์ข…์†์„ฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— npm์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์›์‚ฌ + CI + ์žฌ๋ฃŒ์™€ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Œ

yarn install v1.22.4
[1/4] Resolving packages...
[2/4] Fetching packages...
error An unexpected error occurred: "https://registry.yarnpkg.com/@material-ui/core/-/core-4.11.0.tgz: Request failed \"404 Not Found\"".
info If you think this is a bug, please open a bug report with the information provided in "/builds/springs-apps/flopanda/flopanda-front-end/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰