Gatsby: /์— ๋Œ€ํ•œ ๋ฆฌ์†Œ์Šค ๋ˆ„๋ฝ

์— ๋งŒ๋“  2019๋…„ 02์›” 03์ผ  ยท  112์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: gatsbyjs/gatsby

์š”์•ฝ

๋‚ด ํ”„๋กœ๋•์…˜ ์‚ฌ์ดํŠธ์—์„œ ์ฃผ๊ธฐ์ ์œผ๋กœ ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

Error: Missing resources for /
  at render(./.cache/ensure-resources.js:133:17)
  at Sg(./node_modules/react-dom/cjs/react-dom.production.min.js:169:129)
  at Hh(./node_modules/react-dom/cjs/react-dom.production.min.js:214:16)
  at Ih(./node_modules/react-dom/cjs/react-dom.production.min.js:215:274)
  at ji(./node_modules/react-dom/cjs/react-dom.production.min.js:230:233)
  at ki(./node_modules/react-dom/cjs/react-dom.production.min.js:229:143)
  at Fh(./node_modules/react-dom/cjs/react-dom.production.min.js:226:196)
  at bg(./node_modules/react-dom/cjs/react-dom.production.min.js:224:28)
  at qi(./node_modules/react-dom/cjs/react-dom.production.min.js:243:14)
  at render(./node_modules/react-dom/cjs/react-dom.production.min.js:251:109)
  at oi(./node_modules/react-dom/cjs/react-dom.production.min.js:254:364)
  at Ai(./node_modules/react-dom/cjs/react-dom.production.min.js:254:350)
  at apply(./.cache/production-app.js:114:7)
  at r(./node_modules/@sentry/browser/dist/index.js:3114:1)

๋•Œ๋•Œ๋กœ ์ด๋กœ ์ธํ•ด ์‚ฌ์ดํŠธ๊ฐ€ ์ „ํ˜€ ๋ Œ๋”๋ง๋˜์ง€ ์•Š๊ณ  ๋นˆ ํŽ˜์ด์ง€ ๋งŒ ํ‘œ์‹œ๋˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ด€๋ จ ์ •๋ณด

์—ฌ๊ธฐ Sentry ์˜ ํ”์ 

ํ™˜๊ฒฝ (ํ•ด๋‹นํ•˜๋Š” ๊ฒฝ์šฐ)

์ด๊ฒƒ์€ ์‚ฌ์ดํŠธ๊ฐ€ ๊ตฌ์ถ•๋˜๋Š” ํ™˜๊ฒฝ์ž…๋‹ˆ๋‹ค.

  System:
    OS: macOS High Sierra 10.13.2
    CPU: x64 Intel(R) Core(TM) i5-7360U CPU @ 2.30GHz
    Shell: 5.3 - /bin/zsh
  Binaries:
    Node: 8.11.1 - ~/.nvm/versions/node/v8.11.1/bin/node
    Yarn: 1.9.4 - ~/.nvm/versions/node/v8.11.1/bin/yarn
    npm: 6.4.1 - ~/.nvm/versions/node/v8.11.1/bin/npm
  Browsers:
    Chrome: 71.0.3578.98
    Safari: 11.0.2
  npmPackages:
    gatsby: ^2.0.19 => 2.0.72
    gatsby-image: ^2.0.15 => 2.0.20
    gatsby-plugin-create-client-paths: ^2.0.2 => 2.0.2
    gatsby-plugin-google-gtag: ^1.0.8 => 1.0.8
    gatsby-plugin-manifest: ^2.0.5 => 2.0.10
    gatsby-plugin-offline: ^2.0.11 => 2.0.17
    gatsby-plugin-page-transitions: ^1.0.7 => 1.0.7
    gatsby-plugin-react-helmet: ^3.0.0 => 3.0.2
    gatsby-plugin-sharp: ^2.0.18 => 2.0.18
    gatsby-plugin-stripe-elements: ^1.0.9 => 1.0.9
    gatsby-plugin-twitter: ^2.0.8 => 2.0.8
    gatsby-source-filesystem: ^2.0.4 => 2.0.12
    gatsby-transformer-sharp: ^2.1.12 => 2.1.12
  npmGlobalPackages:
    gatsby-cli: 2.0.0-rc.1
    gatsby-plugin-countly: 0.2.0

๋””๋ฒ„๊น…์„ ์–ด๋””์„œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์•ผํ• ์ง€ ๋ชจ๋ฅด๊ฒ ์œผ๋ฏ€๋กœ ๋„์›€์„ ์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!

needs reproduction question or discussion

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

@wardpeet ์€ ๋„คํŠธ์›Œํฌ ๋ฌธ์ œ๋ฅผ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜๊ธฐ ์œ„ํ•ด ๋ช‡ ๊ฐ€์ง€ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ ์ค‘์ด์ง€๋งŒ ์•ž์œผ๋กœ 24 ์‹œ๊ฐ„

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

https://github.com/gatsbyjs/gatsby/issues/11453 ๊ณผ ๊ด€๋ จ์ด์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์— ๊ด€๋ จ๋œ 404 ํ•ญ๋ชฉ์€ ์—†์ง€๋งŒ ์•„๋งˆ๋„.

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค, @Jivings

๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด ์ตœ์†Œํ•œ์˜ ๋ณต์ œ๋ฌผ์— ์—ฐ๊ฒฐํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

ํ˜„์ง€์—์„œ ์žฌํ˜„ ํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค ๐Ÿ™ ๋” ๋งŽ์€ ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ๋ณด์ดˆ ๋ณด๊ณ ์„œ๊ฐ€ ์ „ํ˜€ ๋„์›€์ด๋˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ? ๋ฒ”์œ„๋ฅผ ์ขํž ์ˆ˜ ์žˆ๋„๋ก ์–ด๋–ค ์ƒํ™ฉ์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋‚˜๋„ ์ด๊ฒƒ์„๋ณด๊ณ  ์žˆ์ง€๋งŒ ๋ฐฐํฌ ํ•œ ํ›„์—์•ผ ๋กœ์ปฌ๋กœ ์žฌํ˜„ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

Uncaught Error: Missing resources for /store/
    at t.n.render (ensure-resources.js:135)
    at Xo (react-dom.production.min.js:156)
    at Qo (react-dom.production.min.js:155)
    at ti (react-dom.production.min.js:162)
    at Oi (react-dom.production.min.js:192)
    at ji (react-dom.production.min.js:193)
    at fa (react-dom.production.min.js:205)
    at sa (react-dom.production.min.js:204)
    at Mi (react-dom.production.min.js:200)
    at ya (react-dom.production.min.js:218)

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

์—ฌ๊ธฐ์„œ๋„ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ์–ด์š” ... ๋จผ์ €, ์˜์–ด ์ฃ„์†ก ํ•ด์š”, ์ €๋Š” ์ŠคํŽ˜์ธ์–ด๋ฅผ ํ•ด์š” ยฏ_ (ใƒ„) _ / ยฏ

Error: Missing resources for /...
    at t.n.render (ensure-resources.js:135)
    at Ri (react-dom.production.min.js:169)
    at Ci (react-dom.production.min.js:168)
    at Li (react-dom.production.min.js:176)
    at Ba (react-dom.production.min.js:221)
    at Ha (react-dom.production.min.js:222)
    at Pl (react-dom.production.min.js:238)
    at Tl (react-dom.production.min.js:237)
    at wl (react-dom.production.min.js:234)
    at Qa (react-dom.production.min.js:232)

์šฐ์„  ์•ฝ๊ฐ„์˜ ๋งฅ๋ฝ์—์„œ window ์‚ฌ์šฉํ•˜๋Š” ์บ ๋Ÿฌ์…€ ํŒจํ‚ค์ง€ Tiny Slider ์™€ ๊ด€๋ จ๋œ ๋ฌธ์ œ๊ฐ€์žˆ์–ด์„œ SSR์ด ๊ตฌํ˜„ ๋œ ๋‹ค๋ฅธ ์บ ๋Ÿฌ์…€์„ ๊ฒ€์ƒ‰ํ•˜๊ณ  react-responsive-carousel์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‚ด๊ฐ€ ํ•„์š”ํ•œ ๊ฒƒ์„ ํ›Œ๋ฅญํ•˜๊ฒŒ ์ž‘๋™ํ•˜์ง€๋งŒ develop ์—์„œ๋งŒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์–ธ๊ธ‰ ๋œ ์˜ค๋ฅ˜๋Š” ๋‘ ๊ฐ€์ง€ ๊ด€๋ จ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์‹œ๋‚˜๋ฆฌ์˜ค 1
์Šคํƒ€์ผ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์Šฌ๋ผ์ด๋“œ ์Šคํƒ€์ผ์„ ์ง€์ •ํ–ˆ์ง€๋งŒ ๋ฏน์Šค ์ธ์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋นŒ๋“œ๊ฐ€ gatsby-plugin-styled-components ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜๋Š” ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ์ž‘๋™ํ•˜์ง€๋งŒ ... ์‹œ๋‚˜๋ฆฌ์˜ค 2๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

์‹œ๋‚˜๋ฆฌ์˜ค 2
์ด์ œ ๋นŒ๋“œ๊ฐ€ ์ž‘๋™ํ•˜๊ณ  ์Šคํƒ€์ผ์ด์žˆ๋Š” ํŽ˜์ด์ง€๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‚ด ํšŒ์ „ ๋ชฉ๋งˆ๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š๊ณ  ์•„๋ฌด๊ฒƒ๋„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค! ๐Ÿ˜ฑ ... ์Šคํƒ€์ผ์ด ์ข‹์•„ ๋ณด์ด์ง€๋งŒ ... ๐Ÿ˜…
๊ทธ๋ž˜์„œ gatsby-plugin-styled-components ๋งŒ ์ œ๊ฑฐํ•˜๋ฉด ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋‹ค์‹œ ์ž‘๋™ํ•˜์ง€๋งŒ ๋‚ด ์Šคํƒ€์ผ์€ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค .๐Ÿ™ƒ

์ด๊ฒƒ์ด ๋ฌธ์ œ๋ฅผ ์ฐพ๊ณ  ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋„์›€์ด๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์•ˆ๋…• ์—ฌ๋Ÿฌ๋ถ„.

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

ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์ œ๊ณต ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ...

@Jivings ๋Š” gatsby ๋ฐ gatsby-plugin-offline ํŒจํ‚ค์ง€๋ฅผ ์—…๋ฐ์ดํŠธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์ด๊ฒƒ์€ ์ƒˆ ๋นŒ๋“œ๋ฅผ ๋งŒ๋“ค์—ˆ์ง€ ๋งŒ ์ด์ „์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ๋” ์ด์ƒ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์„ ๋•Œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค (๋”ฐ๋ผ์„œ ์˜คํ”„๋ผ์ธ ํ”Œ๋Ÿฌ๊ทธ์ธ์— ์˜ํ•ด ์บ์‹œ ๋œ html์€ ์‚ฌ์šฉํ•  ์ˆ˜์—†๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค). ์ตœ์‹  ๊ฐœ์ธ ๋น„ / ์˜คํ”„๋ผ์ธ ํŒจํ‚ค์ง€ ๋ฒ„์ „์—์„œ ์„œ๋น„์Šค ์›Œ์ปค ์—…๋ฐ์ดํŠธ ํ›„ ๋‹ค์‹œ๋กœ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์‚ฌ์ดํŠธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜์—†๋Š” ์ƒํƒœ๋กœ ๋– ๋‚˜์ง€ ์•Š๋„๋กํ–ˆ์Šต๋‹ˆ๋‹ค.

์ œ ๊ฒฝ์šฐ์—๋Š” ๊ฐ€์ ธ ์˜ค๊ธฐ๋ฅผ import { Link } from './' ์—์„œ import { Link } from './Link' (๋‚ด ํŒŒ์ผ /components/footer.js )๋กœ ๋ณ€๊ฒฝํ–ˆ์œผ๋ฉฐ "/์— ๋Œ€ํ•œ ๋ฆฌ์†Œ์Šค ๋ˆ„๋ฝ"์˜ค๋ฅ˜๋ฅผ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์ƒ๊ฐํ•˜๊ธฐ์— ์ˆœํ™˜ ์˜์กด์„ฑ์ด์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ๊ฒƒ์ด ๋‹น์‹ ์˜ ๊ฒƒ์„ ๊ณ ์น  ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.
ํŽธ์ง‘ : ์˜ค๋ฅ˜๊ฐ€ ์ฃผ๊ธฐ์ ์œผ๋กœ ๋ฐœ์ƒํ•˜๋ฉด ์œ„์˜ @pieh ์†”๋ฃจ์…˜์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋”

์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€๋งŒ IE11์—์„œ๋งŒ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์•Œ ์ˆ˜์žˆ๋Š” ํ•œ ํ•œ ๋ธŒ๋ผ์šฐ์ €์—์„œ๋งŒ ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋–ค ๋ฆฌ์†Œ์Šค๊ฐ€ ์‹คํŒจํ•˜๋Š”์ง€ ์ •ํ™•ํžˆ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ react-dom์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค (์•„๋ž˜ ์Šคํฌ๋ฆฐ ์ƒท ์ฐธ์กฐ). ๋ชจ๋“  Gatsby ์ข…์†์„ฑ์„ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜๊ณ  Symbol์ด๋‚˜ ๋„ˆ๋ฌด ํ˜„๋Œ€์ ์ธ ๊ฒƒ์— ์งˆ์‹ํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•˜์—ฌ polyfill ์„ ์ถ”๊ฐ€ํ–ˆ์ง€๋งŒ ์˜ค๋ฅ˜๊ฐ€ ์—ฌ์ „ํžˆ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. IE11์—์„œ๋„ ์ด๋ฏธ์ง€ ๋กœ๋”ฉ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. # 4021์—์„œ ๋…ผ์˜ ๋œ ๊ฒƒ๊ณผ ๊ฐ™์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์ด๋ฏธ์ง€์™€ ์˜คํ”„๋ผ์ธ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ œ๊ฑฐํ•˜๋ฉด ํŽ˜์ด์ง€๋กœ๋“œ์‹œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์ง€๋งŒ ์ด๋ฏธ์ง€๊ฐ€ ํฌํ•จ๋˜์ง€ ์•Š์€ ๋‹ค๋ฅธ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ถ€ JS๊ฐ€๋กœ๋“œ๋˜์ง€ ์•Š๊ณ  IE๊ฐ€ ๋Œ€์‹  HTML 404 ํŽ˜์ด์ง€๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์—ฌ๊ธฐ์„œ ๋ญ”๊ฐ€ ์ด์ƒํ•œ ์ผ์ด ๋ฒŒ์–ด์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

Netlify์— ๋ฐฐํฌ ๋œ ๊ฐœ๋ฐœ ๋ธŒ๋žœ์น˜์—์„œ ๋‹ค์–‘ํ•œ ์žฅ์น˜์˜ ์ˆ˜์ • ์‚ฌํ•ญ์„ ํ…Œ์ŠคํŠธํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
ํ…Œ์ŠคํŠธํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ์ตœ์‹  ๋””๋ฒ„๊ทธ ๋นŒ๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. https://5c6ee3b943e6c400080a5a8b--marcysutton.netlify.com/about/
๋‹ค์Œ์€ IE11์˜ ๋ชจ๋“  ์†์ƒ์ด์žˆ๋Š” ๋ผ์ด๋ธŒ ์‚ฌ์ดํŠธ์ž…๋‹ˆ๋‹ค. https://marcysutton.com
๊ทธ๋ฆฌ๊ณ  ์—ฌ๊ธฐ ๋‚ด ์‚ฌ์ดํŠธ ์†Œ์Šค : https://github.com/marcysutton/gatsby-site

๋‹ค์Œ์€ ๋‚ด VM์˜ ์Šคํฌ๋ฆฐ ์ƒท์ž…๋‹ˆ๋‹ค.

stack trace
script errors in console
react-dom looks related

@marcysutton ์ด๊ฒƒ์œผ๋กœ ์ง„์ „์„ ์ด๋ฃจ์…จ์Šต๋‹ˆ๊นŒ? IE11์—์„œ๋งŒ ๋˜‘๊ฐ™์€ ๊ฒƒ์„๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ธŒ๋ผ์šฐ์ €์—์„œ๋Š” ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์•„์ง! @sidharthachatterjee ๋˜๋Š” @pieh , ๋””๋ฒ„๊น…ํ•˜๊ธฐ์— ์ถฉ๋ถ„ํ•œ ์ •๋ณด์ž…๋‹ˆ๊นŒ? ํ˜„์žฌ IE11์˜ ๊ฝค ์ฐจ๋‹จ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

@Undistraction ์ข‹์€ ์†Œ์‹์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํŒ€์ด์ด ๋ฌธ์ œ๋ฅผ ๋””๋ฒ„๊ทธํ•˜๋Š” ๋ฐ ๋„์›€์„ gatsby-background-image )์—์„œ ์ปดํŒŒ์ผ๋˜์ง€ ์•Š์€ ํ™”์‚ดํ‘œ ๊ธฐ๋Šฅ์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ง€์ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€์ด๋ฅผ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด Gatsby ์ฝ”์–ด์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•ด ๋…ผ์˜ํ•˜๊ณ  ์žˆ์ง€๋งŒ ๊ทธ ๋™์•ˆ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ค๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ปดํŒŒ์ผํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค : https://www.gatsbyjs.org/packages/gatsby-plugin- compile-es6-packages /? = ์ปดํŒŒ์ผ

๋‚ด ์‚ฌ์ดํŠธ์—์„œ ์‚ฌ์šฉํ•œ ๊ณณ : https://github.com/marcysutton/gatsby-site/blob/develop/gatsby-config.js#L107

์—ฌ์ „ํžˆ ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”!

์—ฌ๊ธฐ์—์„œ๋„ ๊ฐ™์€ ๋ฌธ์ œ์ธ๋ฐ, ๋‚ด๊ฐ€ ๋ฉฐ์น  ๋™์•ˆ ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ์›น ์‚ฌ์ดํŠธ (Gatsby ์›น ์‚ฌ์ดํŠธ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€)์—์„œ ์ฃผ๊ธฐ์ ์œผ๋กœ์ด ๋ฌธ์ œ๋ฅผ ๋ด…๋‹ˆ๋‹ค. IE11์ด ์•„๋‹ˆ๋ผ Chrome์ž…๋‹ˆ๋‹ค. ๋นˆ ํŽ˜์ด์ง€๊ฐ€ ๋ช‡ ์ดˆ ํ›„์— ์ƒˆ๋กœ ๊ณ ์ณ์ง€๊ณ  ๋ชจ๋“  ๊ฒƒ์ด ๋‹ค์‹œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

ํ•œ ๊ฐ€์ง€ ์˜ˆ์˜ ๋ฒ„์ „ :
gatsby : 2.0.118
gatsby-plugin-offline : 2.0.23

IE (์—์ง€ ๋ชจ๋“œ)์—์„œ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ค„ 1 char 195183์˜ react-dom.production.min.js ํŒŒ์ผ์„ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

IE์—์„œ ์˜ค๋ฅ˜๋ฅผ ํด๋ฆญํ•˜๋ฉด ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ๊ฐ€๋ฆฌ ํ‚ต๋‹ˆ๋‹ค.

if(pi)throw a=qi,qi=null,pi=!1,a;}

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

(์ฒซ ๋ฒˆ์งธ)๋กœ๋“œ์‹œ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์žฌ ์žฅ์ „ ํ›„ ์ง€์›Œ์ง€๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ”„๋กœ๋•์…˜ / Firebase ํ˜ธ์ŠคํŒ….
Error: Missing resources for /

@rkhayat URL์— ๋งํฌํ•˜๊ฑฐ๋‚˜ ๋” ๋‚˜์€ ์žฌ์ƒ์‚ฐ์„ ์ œ๊ณต ํ• 

๊ฐ์‚ฌ!

FWIW์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ๊ฒฝํ—˜์„ https://github.com/gatsbyjs/gatsby/issues/12399์— ์ผ์Šต๋‹ˆ๋‹ค. Missing resources for / ์˜ค๋ฅ˜๋ฅผ ์น˜๋Š” ์‚ฌ๋žŒ์—๊ฒŒ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์‚ฌ์ดํŠธ๋ฅผ ์ž˜ ํƒ์ƒ‰ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ํŽ˜์ด์ง€๋ฅผ ์ƒˆ๋กœ ๊ณ ์น˜๋ฉด ํŽ˜์ด์ง€๊ฐ€ ๋น„์–ด ์žˆ๊ณ  Error: Missing resources for /<path> ๋ฉ๋‹ˆ๋‹ค. ํ•˜๋“œ ์ƒˆ๋กœ ๊ณ ์นจ ๋˜๋Š” ์บ์‹œ ์ง€์šฐ๊ธฐ๋Š” ํŽ˜์ด์ง€๋ฅผ ๋‹ค์‹œ๋กœ๋“œํ•˜์ง€๋งŒ ๋‹ค์‹œ ์ผ๋ฐ˜ ์ƒˆ๋กœ ๊ณ ์นจ์€ ๋นˆ ํŽ˜์ด์ง€๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

gatsby server ํ•˜์—ฌ ๋กœ์ปฌ์—์„œ์ด๋ฅผ ์žฌํ˜„ ํ•  ์ˆ˜ ์—†์–ด์„œ CDN ๋ฌธ์ œ๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ ํ•œ ๊ฒƒ์œผ๋กœ ๋ณด์ด๋Š” CloudFront ๋ฐฐํฌ์˜ ๋ฃจํŠธ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๋ฌดํšจํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์•„์ง๋„ ์ •ํ™•ํžˆ ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ ์ผ๋ถ€ ์ฐธ์กฐ๊ฐ€ ๊ตฌ์‹์ด ๋œ ๊ฒƒ์œผ๋กœ ์˜์‹ฌ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋‹ค๋ฅธ ์‚ฌ๋žŒ์—๊ฒŒ ๋„์›€์ด๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

ํžˆ์•ผ!

์ด ๋ฌธ์ œ๋Š” ์กฐ์šฉํ•ด์กŒ์Šต๋‹ˆ๋‹ค. ๋ฌด์‹œ ๋ฌด์‹œํ•œ ์กฐ์šฉํ•จ. ๐Ÿ‘ป

๋งŽ์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฏ€๋กœ ํ˜„์žฌ 30 ์ผ ๋™์•ˆ ํ™œ๋™์ด ์—†์œผ๋ฉด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๋งˆ์ง€๋ง‰์œผ๋กœ ์—…๋ฐ์ดํŠธ ํ•œ ์ง€ 20 ์ผ์ด ์ง€๋‚ฌ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ๋†“์ณค๊ฑฐ๋‚˜ ๊ณ„์† ์—ด๋ ค๊ณ  ์‹ถ๋‹ค๋ฉด ์—ฌ๊ธฐ์—์„œ ๋‹ต์žฅ ํ•ด์ฃผ์„ธ์š”. ์ด ๋ฌธ์ œ๋ฅผ ๊ณ„์† ์—ด์–ด๋‘๊ธฐ ์œ„ํ•ด "๋ถ€์‹คํ•˜์ง€ ์•Š์Œ"์ด๋ผ๋Š” ๋ ˆ์ด๋ธ”์„ ์ถ”๊ฐ€ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

Gatsby ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ์ผ์›์ด๋˜์–ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ๐Ÿ’ช๐Ÿ’œ

@ gatsbyjs-read-only-user ๋ถ€์‹คํ•˜์ง€ ์•Š์Œ ๐Ÿ˜ฌ

@Undistraction ์ข‹์€ ์†Œ์‹์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํŒ€์ด์ด ๋ฌธ์ œ๋ฅผ ๋””๋ฒ„๊ทธํ•˜๋Š” ๋ฐ ๋„์›€์„ gatsby-background-image )์—์„œ ์ปดํŒŒ์ผ๋˜์ง€ ์•Š์€ ํ™”์‚ดํ‘œ ๊ธฐ๋Šฅ์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ง€์ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€์ด๋ฅผ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด Gatsby ์ฝ”์–ด์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•ด ๋…ผ์˜ํ•˜๊ณ  ์žˆ์ง€๋งŒ ๊ทธ ๋™์•ˆ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ค๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ปดํŒŒ์ผํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค : https://www.gatsbyjs.org/packages/gatsby-plugin- compile-es6-packages /? = ์ปดํŒŒ์ผ

๋‚ด ์‚ฌ์ดํŠธ์—์„œ ์‚ฌ์šฉํ•œ ๊ณณ : https://github.com/marcysutton/gatsby-site/blob/develop/gatsby-config.js#L107

์—ฌ์ „ํžˆ ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”!

@marcysutton ์ปดํŒŒ์ผ๋˜์ง€ ์•Š์€ ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋ฅผ ํฌํ•จํ•˜๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ / ๋ชจ๋“ˆ์„ ์–ด๋–ป๊ฒŒ ์‹๋ณ„ ํ–ˆ์Šต๋‹ˆ๊นŒ?

@onetwothreebutter ๋Š” ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ปดํŒŒ์ผ ๋œ JavaScript ํŒŒ์ผ์„ ์—ด๊ณ  => ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. IE๋Š” ๊ทธ๋“ค์ด ์–ด๋””์—์„œ ์™”๋Š”์ง€ ์‰ฝ๊ฒŒ ์•Œ ์ˆ˜ ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ์— "Ctrl + F"๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜๋™์œผ๋กœ ๊ฒ€์ƒ‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ํ•ต์‹ฌ์ ์œผ๋กœ ๊ฐœ์„  ๋  ๊ฒƒ์ด์ง€๋งŒ ๊ทธ๋™์•ˆ ํ™•์ธํ•  ์ˆ˜์žˆ๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค!

์ด ๋ฌธ์ œ๋Š” IE๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €์™€ ๋ฒ„์ „์—์„œ ์ง€์†๋˜๋ฉฐ Gatsby์—์„œ ์„œ๋น„์Šค ์›Œ์ปค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŠธ๋ฆฌ๊ฑฐ๋˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. ๊ด€๋ จ : # 12399

๋‚˜๋Š” ๋˜ํ•œ ๊ฐ™์€ ๋ฌธ์ œ์— ์ง๋ฉดํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ์„œ๋น„์Šค ์›Œ์ปค๊ฐ€ ์‚ฌ์šฉ ์„ค์ •๋œ ๊ฒฝ์šฐ ํŽ˜์ด์ง€๋ฅผ ์ƒˆ๋กœ ๊ณ ์นจํ•˜๋ฉด ์œ„์—์„œ ์–ธ๊ธ‰ ํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” ์ฃผ๋กœ Chrome์—์„œ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. Edge ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค (์•„๋งˆ๋„ ์„œ๋น„์Šค ์›Œ์ปค๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ผ ์ˆ˜ ์žˆ์Œ)
  • ์„œ๋น„์Šค ์›Œ์ปค๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ํ”Œ๋Ÿฌ๊ทธ์ธ gatsby-plugin-remove-serviceworker ํ•˜๋ฉด์ด ๋ฌธ์ œ๋Š” ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค.
    ์‚ฌ์šฉ ๋œ ํ•ด์ƒ๋„ :
  • ๊ทธ๋Ÿฌ๋‚˜ ์„œ๋ฒ„ ์ž‘์—…์ž ๊ธฐ๋Šฅ์˜ ์ค‘์š”์„ฑ์„ ๊ฐ์•ˆํ•  ๋•Œ PWA ํ”Œ๋Ÿฌ๊ทธ์ธ gatsby-plugin-offline ๊ณผ ํ•จ๊ป˜ gatsby-plugin-remove-trailing-slashes ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•ด ๋ณด์•˜๊ณ  ์ด๊ฒƒ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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

@antoinerousseau ์˜ˆ, ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๊ณ  ๋ช‡ ๋ฒˆ ์‹œ๋„ํ•œ ํ›„์—๋„ SW๊ฐ€ ์—†์–ด๋„ ์—ฌ์ „ํžˆ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋ช‡ ๊ฐ€์ง€ Gatsby ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ–ˆ๊ณ  ์˜ค๋ฅ˜ ์ˆ˜๋ฅผ ์ค„ ์˜€์ง€๋งŒ 0์€ ์•„๋‹ˆ ์—ˆ์Šต๋‹ˆ๋‹ค. (์šฐ์—ฐ ์ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค)

@KyleAMathews ์ด๊ฒƒ์„ ๋ณธ ์ ์ด ์žˆ๊ฑฐ๋‚˜ ์–ด๋–ค ์ •๋ณด๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

@jackhair ์žฌ์ƒ์‚ฐ์—†์ด ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€ ๋งํ•˜๊ธฐ๊ฐ€ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. http://gatsby.dev/reproduction

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• : https://github.com/gatsbyjs/gatsby/issues/13410#issuecomment -486306784

@smakosh ๋‚˜๋Š” ์„œ๋น„์Šค ์›Œ์ปค๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์˜คํ”„๋ผ์ธ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์‚ฌ์šฉ ์ค‘์ž…๋‹ˆ๋‹ค.

์ข‹์•„,ํ•˜์ง€๋งŒ ๋‚ด ๋ง์€ ๊ทธ ํ”Œ๋Ÿฌ๊ทธ์ธ ์—†์ด๋„ ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด์ „์— ์‚ฌ์šฉํ•œ ์ ์ด์žˆ๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๋“ฑ๋ก์„ ์„ฑ๊ณต์ ์œผ๋กœ ์ทจ์†Œํ–ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  public ๋ฐ .cache ํด๋”๋ฅผ ์‚ญ์ œํ•˜์—ฌ Gatsby ์บ์‹œ๋ฅผ ์‚ญ์ œ ํ•ด๋ณด์‹ญ์‹œ์˜ค.

ํ•ด๋‹น ํ”„๋กœ์ ํŠธ์—์„œ SW๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. (๊ทธ๋ฆฌ๊ณ  ๋ฐฉ๊ธˆ ํ™•์ธ)
public ๋ฐ .cache ๋Š” ํ•ญ์ƒ Netlify์— ์˜ํ•ด ๋‹ค์‹œ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
Sentry๋Š” ์ƒ์‚ฐ ๊ณผ์ •์—์„œ ์˜ค๋ฅ˜๋ฅผ๋ณด๊ณ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
https://sentry.io/share/issue/738b234836814442b7702866c6814fdf/

ํ”„๋กœ์ ํŠธ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค์ž…๋‹ˆ๊นŒ? ์•„๋ž˜ ๋งํฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๊ทธ๊ฒƒ์„ ํ™•์ธํ•˜๊ณ  ์–ด๋–ป๊ฒŒ ๊ณ ์น  ์ˆ˜ ์žˆ๋Š”์ง€๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์ฃ„์†กํ•˜์ง€๋งŒ ๊ธฐ๋ณธ์ ์œผ๋กœ Netlify์—์„œ ์ œ๊ณตํ•˜๋Š” Gatsby ์‚ฌ์ดํŠธ์ž…๋‹ˆ๋‹ค.

  "dependencies": {
    "@sentry/browser": "^5.1.1",
    "@types/algoliasearch": "^3.30.8",
    "@types/dotenv": "^6.1.0",
    "@types/he": "^1.1.0",
    "@types/jump.js": "^1.0.2",
    "@types/node": "^11.13.7",
    "@types/node-fetch": "^2.3.3",
    "@types/react": "^16.8.14",
    "@types/react-dom": "^16.8.4",
    "@types/source-map-support": "^0.5.0",
    "@types/standard-http-error": "^2.0.0",
    "@types/styled-components": "^4.1.14",
    "algoliasearch": "^3.32.0",
    "aws-sdk": "^2.443.0",
    "babel-plugin-styled-components": "^1.10.0",
    "date-fns": "^2.0.0-alpha.27",
    "gatsby": "^2.3.31",
    "gatsby-image": "^2.0.40",
    "gatsby-plugin-google-analytics": "^2.0.18",
    "gatsby-plugin-manifest": "^2.0.29",
    "gatsby-plugin-netlify": "^2.0.15",
    "gatsby-plugin-offline": "^2.0.24",
    "gatsby-plugin-react-helmet": "^3.0.12",
    "gatsby-plugin-sharp": "^2.0.35",
    "gatsby-plugin-styled-components": "^3.0.6",
    "gatsby-plugin-typescript": "^2.0.13",
    "gatsby-source-filesystem": "^2.0.32",
    "gatsby-transformer-sharp": "^2.1.18",
    "he": "^1.2.0",
    "hyphenslug": "^1.0.0",
    "intersection-observer": "^0.6.0",
    "jump.js": "^1.0.2",
    "mkdirp2": "^1.0.4",
    "mustache": "^3.0.1",
    "node-fetch": "^2.3.0",
    "nodemailer": "^6.1.1",
    "prop-types": "^15.7.2",
    "react": "^16.8.3",
    "react-dom": "^16.8.3",
    "react-helmet": "^5.2.0",
    "sitemap": "^2.1.0",
    "source-map-support": "^0.5.12",
    "standard-http-error": "^2.0.1",
    "strip": "^3.0.0",
    "styled-components": "^4.1.3",
    "ts-node": "^8.1.0",
    "typescript": "^3.4.5",
    "whatwg-fetch": "^3.0.0"
  },

์˜คํ”„๋ผ์ธ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์„ค์น˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. gatsby-config ํŒŒ์ผ์— ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์€์ง€ ํ™•์ธํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

์˜ˆ, ๋ฏธ์•ˆํ•˜์ง€๋งŒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ ๋‚ด Gatsby ๊ตฌ์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

module.exports = {
  siteMetadata: {/*...*/},
  plugins: [
    `gatsby-plugin-typescript`,
    `gatsby-plugin-styled-components`,
    `gatsby-plugin-react-helmet`,
    {
      resolve: `gatsby-source-filesystem`,
      options: {
        name: `images`,
        path: `${__dirname}/src/images`,
      },
    },
    {
      resolve: `gatsby-plugin-sharp`,
      options: {
        defaultQuality: 80,
      },
    },
    `gatsby-transformer-sharp`,
    {
      resolve: `gatsby-plugin-manifest`,
      options: {
        name: `Le Bikini`,
        short_name: `Le Bikini`,
        start_url: `/`,
        background_color: `#000000`,
        theme_color: `#000000`,
        display: `minimal-ui`,
        icon: `src/images/favicon.png`,
      },
    },
    `gatsby-plugin-netlify`,
    {
      resolve: `gatsby-plugin-google-analytics`,
      options: {
        trackingId: process.env.GOOGLE_ANALYTICS,
        head: false,
        anonymize: true,
        respectDNT: true,
      },
    },

    // this (optional) plugin enables Progressive Web App + Offline functionality
    // 'gatsby-plugin-offline',
    // To learn more, visit: https://gatsby.app/offline
  ],
}

https://lebikini.netlify.com ์—์„œ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋””๋ฒ„๊น…์„ ์œ„ํ•ด ๋” ๋งŽ์€ ํ•ญ๋ชฉ์„ ํ™•์ธํ•ด์•ผํ•˜๋ฏ€๋กœ ๋ณต์ œ ์ €์žฅ์†Œ ์—†์ด๋Š” ๋„์šธ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์กฐ์‹ฌํ•˜์„ธ์š” @antoinerousseau
gatsby-plugin-netlify ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ฌธ์„œ์— ๋”ฐ๋ผ ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ฐฐ์—ด์—์„œ ๋งˆ์ง€๋ง‰ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.
https://www.npmjs.com/package/gatsby-plugin-netlify

@abumalick @antoinerousseau ์šฐ๋ฆฌ๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ฐฐ์—ด์˜ ๋์œผ๋กœ gatsby-plugin-netlify ์„ ์ด๋™ํ–ˆ์ง€๋งŒ ์•„๋ฌด๊ฒƒ๋„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์•„๋งˆ๋„ ์ด๊ฒƒ์ด ๊ทธ๊ฒƒ๊ณผ ๊ด€๋ จ์ด์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? https://github.com/gatsbyjs/gatsby/issues/11982

๋‚ด๊ฐ€ ์ง์ ‘ ๋ฌธ์ œ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์„ ๋•Œ (์ˆœ์ˆ˜ํ•œ ๊ธฐํšŒ), ํ•ญ์ƒ ํŽ˜์ด์ง€ ๋งค๋‹ˆํŽ˜์ŠคํŠธ ๋ˆ„๋ฝ๊ณผ ๊ด€๋ จ๋œ ์ผ์ข…์˜ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ด€๋ จ ๋ฌธ์ œ์˜ ๋ชจ๋“  ๊ฒฝ์šฐ์—์„œ ์ž‘๋™ํ•˜๋Š” ์œ ์ผํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์„ ์—ฌ๊ธฐ์— ์„ค๋ช…ํ–ˆ์Šต๋‹ˆ๋‹ค. https://github.com/gatsbyjs/gatsby/issues/12399#issuecomment -488247566

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค. ๋‚ด ๊ฒฝ์šฐ๋Š” @ efd1 ๊ณผ import { Module } from "." ํ˜•์‹์œผ๋กœ ๊ฐ€์ ธ ์˜ค๊ธฐ๋กœ ์ธํ•ด ํ”„๋กœ๋•์…˜ ๋นŒ๋“œ๊ฐ€ ์ค‘๋‹จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค (๊ฐœ๋ฐœ์ด ๋ฌธ์ œ์—†์ด ์ž‘๋™ ์ค‘์ž„). ๋ถˆํ–‰ํžˆ๋„ ๋””๋ฒ„๊ทธํ•˜๊ณ  ์ฐพ๋Š” ๊ฒƒ์€ ๊ทธ๋ฆฌ ์‰ฝ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

image

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

์œ„์˜ Kyle์˜ ์ง„์ˆ ์„ ๋ฐ˜์˜ํ•˜๋ ค๋ฉด ์žฌํ˜„ ๊ฐ€๋Šฅํ•œ ๋ฐ๋ชจ ์‚ฌ์ดํŠธ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. http://gatsby.dev/reproduction

์žฌ์ƒ์‚ฐ์—†์ด ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€ ๋งํ•˜๊ธฐ๋Š” ์–ด๋ ต์Šต๋‹ˆ๋‹ค. http://gatsby.dev/reproduction

@KyleAMathews ์†”์งํžˆ ์ด๊ฒƒ์€ ์—ฌ๋Ÿฌ ํŽ˜์ด์ง€ ์ธ Netlify์— ๋ฐฐํฌ ๋œ ๋ชจ๋“  Gatsby ์‚ฌ์ดํŠธ์—์„œ ๋ฐœ์ƒํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์„ผํŠธ๋ฆฌ๋ฅผ ํ•˜๋‚˜์— ๋˜์ง€๊ณ  ์ง์ ‘ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

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

@LekoArts @marcysutton Sentry ์ถ”์ ์€ ์—ฌ๊ธฐ์—์„œ ์—ฌ์ „ํžˆ ๊ณต๊ฐœ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜

๋„์›€์ด ๋˜๋‚˜์š”?

ํ”„๋กœ๋•์…˜ ์‚ฌ์ดํŠธ์—์„œ ์•ฝ ํ•˜๋ฃจ์— ํ•œ ๋ฒˆ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

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

@lekoarts Sentry ์„ค์ •์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ํŠธ๋ž˜ํ”ฝ?

ํ”„๋กœ๋•์…˜ ์‚ฌ์ดํŠธ์—์„œ ์•ฝ ํ•˜๋ฃจ์— ํ•œ ๋ฒˆ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

@Jivings ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ํŠธ๋ž˜ํ”ฝ? ๋‚˜๋Š” ์ฃผํŒŒ์ˆ˜์— ๋Œ€ํ•œ ์•„์ด๋””์–ด๋ฅผ ์–ป์œผ๋ ค๊ณ  ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์•Œ ์ˆ˜์žˆ๋Š” ํ•œ, 3 ์›” 1 ์ผ ์ดํ›„๋กœ ๋‚ด๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” ์›น ์‚ฌ์ดํŠธ์—์„œ 16 ๋งŒ ํŽ˜์ด์ง€ ๋ทฐ (47k ์„ธ์…˜)์— ๊ฑธ์ณ์ด ์˜ค๋ฅ˜์˜ 541 ๊ฐœ ์ธ์Šคํ„ด์Šค๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ํŽ˜์ด์ง€ ๋ทฐ๊ฐ€ ํ–‰๋™์„ ์ด‰๋ฐœ ํ•  ํ™•๋ฅ ์ด 0.3 %์ด๊ณ  ์„ธ์…˜์ด์ด๋ฅผ ๊ฒฝํ—˜ํ•  ํ™•๋ฅ ์€ 1.2 %์ž…๋‹ˆ๋‹ค. ๋ณต์ œ๋ฌผ์— ๊ด€ํ•œ ํ•œ ํฌ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ๊ตฌ์‹ ์ถ”์ , ์กฐ์‚ฌ ๋ฐ ๊ธฐํƒ€ ๋””๋ฒ„๊น…์ด ํ•„์š”ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

Sentry๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ _without_ ํ”„๋กœ๋•์…˜์—์„œ์ด ์˜ค๋ฅ˜๋ฅผ ๋ณด๋Š” ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ? Honeybadger, Raygun, Rollbar, Airbrake ๋“ฑ์„ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

@coreyward ๋˜ํ•œ Raygun์œผ๋กœ ๊ฐ„ํ—์ ์œผ๋กœ๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ํŠน์ • ํŽ˜์ด์ง€์—๋งŒ ์žˆ์œผ๋ฉฐ ๋ชจ๋ฐ”์ผ Safari ๋ฐ Chrome์—๋งŒ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค.

@coreyward ์šฐ๋ฆฌ๋Š”

@coreyward ์•„๋งˆ๋„ ์ด๊ฒƒ์ด ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค :

(https://github.com/gatsbyjs/gatsby/issues/12399#issuecomment-480082161์—์„œ)

์šฐ๋ฆฌ๋Š” Bugsnag๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ํŠธ๋ž˜ํ”ฝ์˜ ์•ฝ 1 %์— ๋Œ€ํ•ด ์ด๊ฒƒ์ด ๋‚˜ํƒ€๋‚˜๋Š” ๊ฒƒ์„๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €๋Š” ์ „์ฒด ํŠธ๋ž˜ํ”ฝ ๋ถ„ํฌ์™€ ๊ฑฐ์˜ ์ผ์น˜ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ด๋ฉฐ ๋ช…ํ™•ํ•œ ํŒจํ„ด์ด ๋ณด์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@coreyward ํŠธ๋ž˜ํ”ฝ์˜ ์•ฝ 1 %์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š”

@KyleAMathews ์•ˆ๋…•ํ•˜์„ธ์š” ์ €๋Š” ํ”„๋กœ๋•์…˜ GatsbyJS ์›น ์‚ฌ์ดํŠธ์—์„œ์ด ์˜ค๋ฅ˜๋ฅผ ๋งŒ๋‚ฌ์Šต๋‹ˆ๋‹ค. ๋ช‡ ๋ฒˆ ์ƒˆ๋กœ ๊ณ ์นœ ํ›„ ๋ฌธ์ œ๊ฐ€ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค.

Screen Shot 2019-05-24 at 6 02 32 PM

์˜คํ”„๋ผ์ธ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜๊ณ  Azure Blob Storage์™€ CDN์— ๋ฐฐํฌ ํ•  ๋•Œ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์„œ๋น„์Šค ์›Œ์ปค js๋Š” CDN์—์„œ ์„œ๋น„์Šค๋˜์ง€ ์•Š์•„์•ผํ•˜๋ฉฐ ์„œ๋ฒ„ ๋„๋ฉ”์ธ์—์„œ ์ง์ ‘ ์ œ๊ณต๋˜์–ด์•ผํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์ฝ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์ด ๊ทผ๋ณธ ์›์ธ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜คํ”„๋ผ์ธ ํ”Œ๋Ÿฌ๊ทธ์ธ๊ณผ ์„œ๋น„์Šค ์›Œ์ปค๊ฐ€ ghpages์—์„œ ํ™œ์„ฑํ™” ๋œ ์ƒํƒœ๋กœ ๋ฐฐํฌ ๋œ ers-hcl.github.io๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋Š” ์˜คํ”„๋ผ์ธ ํ”Œ๋Ÿฌ๊ทธ์ธ๊ณผ ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค. ์˜คํ”„๋ผ์ธ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ƒˆ ์ฝ˜ํ…์ธ ๋ฅผ SW ์—…๋ฐ์ดํŠธ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ์„ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋‹ค์‹œ๋กœ๋“œํ•˜๊ฑฐ๋‚˜ ํ‘ธ์‹œ ์•Œ๋ฆผ์„ ํ‘œ์‹œํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

@smakosh ์˜คํ”„๋ผ์ธ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๋น„ํ™œ์„ฑํ™” ํ•  ๋•Œ

์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์„๋ณด๊ณ  ์žˆ์œผ๋ฉฐ ์˜คํ”„๋ผ์ธ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • ๋‚ด๊ฐ€ ํ‹€๋ ธ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค- ensure-resources.js ํŒŒ์ผ์—์„œ ํ•œ ๊ฐ€์ง€ ๊ด€์ฐฐ์€์ด ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ๊ตฌ์„ฑ ์š”์†Œ์ด์ง€๋งŒ ๋งŒ์ผ์„ ๋Œ€๋น„ํ•˜์—ฌ ์–ธ๊ธ‰ ํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์œ„ํ•œ ์ฝ”๋“œ๋ฅผ ์ฐพ๊ณ  ensure-resources.js , ๊ทธ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ window.location ํŠน์„ฑ์„ ์กด์žฌํ•˜๋Š” ํ•œ ์ค„ ์—†์Œ 81์— location ์ด ์š”์†Œ์—์„œ ์‚ฌ์šฉ๋˜๊ณ ์žˆ๋Š” ๋ชจ๋“  ๋‹ค๋ฅธ ์žฅ์†Œ๋“ค.

image

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

์ด๊ฒƒ์€ CORS ๋ฌธ์ œ๋กœ ์ธํ•ด DataCamp.com์— ์˜ํ–ฅ์„ ๋ฏธ์ณค์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” Cloudfront๋ฅผ ํ†ตํ•ด ์ œ๊ณต๋˜๋Š” S3์—์„œ ์ž์‚ฐ ์ ‘๋‘์‚ฌ ๋ฐ ํ˜ธ์ŠคํŒ… ์ž์‚ฐ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์‚ฐ ์ ‘๋‘์‚ฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฒ˜์Œ ๋ฐฐํฌํ•˜๋Š” ๋™์•ˆ ๋„๋ฉ”์ธ์—์„œ ์ž์‚ฐ์— ์•ก์„ธ์Šค ํ•  ์ˆ˜ ์žˆ๋„๋ก S3์—์„œ CORS ํ—ค๋”๋ฅผ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์„ ์žŠ์—ˆ์Šต๋‹ˆ๋‹ค (์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค). ์šฐ๋ฆฌ๋Š” 1 ~ 2 ๋ถ„ ํ›„์— CORS ํ—ค๋”๋ฅผ ์—…๋ฐ์ดํŠธํ–ˆ์ง€๋งŒ ์ž์‚ฐ์ด ์ด๋ฏธ ํ˜ธ์ถœ ๋œ ์—์ง€ ๋…ธ๋“œ๋Š” ์ž์‚ฐ ์ฝ˜ํ…์ธ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ CORS ํ—ค๋”๋„ ์บ์‹œ ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค! ์ด๋กœ ์ธํ•ด ์ผ๋ถ€ ์ด์ƒํ•œ ๋ฒ„๊ทธ๊ฐ€ ์†Œ์ˆ˜์˜ ์‚ฌ์šฉ์ž์—๊ฒŒ๋งŒ ์˜ํ–ฅ์„ ๋ฏธ์นœ๋‹ค๋Š” ์ฐฉ๊ฐ์„ ๋ถˆ๋Ÿฌ ์ผ์œผ์ผฐ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ๋ฌธ์ œ๋Š” ์ž‘์€ ๋น„์œจ์˜ ์—์ง€ ๋…ธ๋“œ์— ์ด์ „ ํ—ค๋”๊ฐ€ ์บ์‹œ๋˜์–ด ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ์—ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์ž์‚ฐ์— ๋Œ€ํ•ด Cloudfront์—์„œ ๋ฌดํšจํ™”๋ฅผ ์ƒ์„ฑํ•˜์—ฌ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

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

์šฐ๋ฆฌ๋Š” ์ด์™€ ๋˜‘๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๊ณ  ๊ทธ ๋’ค์—์žˆ๋Š” ์ฃผ๋œ ์ด์œ ๋Š” ์ˆœํ™˜ ์ข…์†์„ฑ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

@bigfanjs ์ข€ ๋” ์ž์„ธํžˆ ์„ค๋ช…ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

@DSchau ์ตœ๊ทผ์— ํŒ€์›์ด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ๋ฐฐํฌํ–ˆ๊ณ  ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋น„์Šทํ•œ ๋ฌธ์ œ๋กœ ๋ถˆํ‰ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์•„์ด๋””์–ด๊ฐ€ ์—†์—ˆ๊ณ  ํŒ€์›์ด ํŽ˜์ด์ง€์™€ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํฐ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” ํŽ˜์ด์ง€์™€ ๊ตฌ์„ฑ ์š”์†Œ ๋ชจ๋‘์— ์ฝ”๋“œ๋ฅผ ์ฃผ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  <div /> ํƒœ๊ทธ๋ฅผ ๋ Œ๋”๋งํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์„œ๋ฒ„ ํ”„๋กœ๋•์…˜ ๋นŒ๋“œ๋ฅผ ๋กœ์ปฌ๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด gatsby build ๋ฅผ ์‹คํ–‰ ํ•œ ๋‹ค์Œ gatsby serve ๋ฅผ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” ๋ช‡ ๊ฐ€์ง€ ์ฝ”๋“œ๋ฅผ ์ฃผ์„์œผ๋กœ ์ขํžˆ๊ธฐ ์‹œ์ž‘ํ–ˆ๊ณ  ๋งค๋ฒˆ ์œ„์˜ ์ถ”์ฒœ์„ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฒ˜๋Ÿผ:

import {Button} from "components/kit"

// comment the rest to see if `Button` is causing the issue
// import {Box} from "components/kit"
// import {Form} from "components/kit" 

๋‹ค์Œ์— ์šฐ๋ฆฌ๋Š” Box ๋“ฑ๋“ฑ์— ๋Œ“๊ธ€์„ ๋‹ฌ๋ฉด ...

๊ฒฐ๊ตญ ์˜ค๋ฅ˜๋Š” ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค.

๋ช‡ ๊ฐ€์ง€ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๊ฐ€์ ธ ์˜ค๋Š” kit ๋ผ๋Š” ๊ณตํ†ต ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ตฌ์„ฑ ์š”์†Œ / ํ‚คํŠธ

| --- Box.js
| --- Button.js
| --- Form.js
| --- index.js

index.js

export { default as Box } from "./Box"
export { default as Button } from "./Button"
export { default as Form } from "./Form"

๋‚ด ์˜ˆ๋ฅผ ๋“ค์–ด Form ์šฐ๋ฆฌ๊ฐ€ ์ˆ˜์ž…ํ•˜๋ ค๊ณ ํ–ˆ๋˜ Box ์ด๋Ÿฐ ์‹์œผ๋กœ :
import {Box} from "components/kit"

๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๋กœ ์ธํ•ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์œผ๋ฉฐ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค.
import {Box} from "./Box"

๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์€ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋„์›€์ด ๋˜๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์—์„œ๋„ ๊ฐ™์€ ๋ฌธ์ œ์ธ๋ฐ, ๋‚ด๊ฐ€ ๋ฉฐ์น  ๋™์•ˆ ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ์›น ์‚ฌ์ดํŠธ (Gatsby ์›น ์‚ฌ์ดํŠธ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€)์—์„œ ์ฃผ๊ธฐ์ ์œผ๋กœ์ด ๋ฌธ์ œ๋ฅผ ๋ด…๋‹ˆ๋‹ค. IE11์ด ์•„๋‹ˆ๋ผ Chrome์ž…๋‹ˆ๋‹ค. ๋นˆ ํŽ˜์ด์ง€๊ฐ€ ๋ช‡ ์ดˆ ํ›„์— ์ƒˆ๋กœ ๊ณ ์ณ์ง€๊ณ  ๋ชจ๋“  ๊ฒƒ์ด ๋‹ค์‹œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

ํ•œ ๊ฐ€์ง€ ์˜ˆ์˜ ๋ฒ„์ „ :
gatsby : 2.0.118
gatsby-plugin-offline : 2.0.23

๋‚˜๋Š” ์ด๊ฒƒ๊ณผ ๋น„์Šทํ•œ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์—ˆ๋‹ค. ํ”„๋กœ๋•์…˜ ๋นŒ๋“œ์—์„œ netlify cms ๊ด€๋ฆฌ ํŽ˜์ด์ง€์— ์•ก์„ธ์Šค ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์ด ๋งˆ์นจ๋‚ด gatsby์™€ gatbsy-plugin-offline ๋ฒ„์ „์ด ์ผ์น˜ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค.
์—„์ง€ ์†๊ฐ€๋ฝ !!!

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

์ด์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ๋Š” https://github.com/gatsbyjs/gatsby/blob/cbbed1dde8a4fd25080e9ab65d7661dfa8fbf327/e2e-tests/production-runtime/cypress/integration/resource-loading-resilience.js#L57

@KyleAMathews ์ด ๋ˆ„๋ฝ ๋œ ๋ฆฌ์†Œ์Šค ์˜ค๋ฅ˜๋กœ ์ธํ•ด ์ƒˆ๋กœ ๊ณ ์นจ์ด ํŠธ๋ฆฌ๊ฑฐ๋˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์‚ฌ์šฉ์ž๊ฐ€ ๊นจ์ง„ ํŽ˜์ด์ง€ ๋˜๋Š” ํฐ์ƒ‰ ํŽ˜์ด์ง€์— ๊ฐ‡ํ˜€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ ๊ณ ์นจ์„ํ•˜๋ ค๋ฉด ์˜คํ”„๋ผ์ธ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ํ•„์š”ํ•ฉ๋‹ˆ๊นŒ?

์•„๋‡จ ... ๊ทธ๊ฒŒ ์ผ์–ด๋‚˜๋ฉด ๊ฐœ์ธ ๋น„์˜ ๋ฒ„๊ทธ์ž…๋‹ˆ๋‹ค. ๋‹น์‹ ์ด ์„ค๋ช…ํ•˜๊ณ ์žˆ๋Š” ์‹œ๋‚˜๋ฆฌ์˜ค์— ๋Œ€ํ•œ ๋ณต์ œ๋ฌผ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

-
์นด์ผ ๋งคํŠœ์Šค

๋ธ”๋กœ๊ทธ : http://bricolage.io
ํŠธ์œ„ํ„ฐ : http://twitter.com/kylemathews

2019 ๋…„ 6 ์›” 4 ์ผ ํ™”์š”์ผ ์˜คํ›„ 3:05, Jack <[email protected]>์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

@ KyleAMathews (https://github.com/KyleAMathews) ์ƒˆ๋กœ ๊ณ ์นจ์ด ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.
์ด ๋ฆฌ์†Œ์Šค ๋ˆ„๋ฝ ์˜ค๋ฅ˜๋กœ ์ธํ•ด ํŠธ๋ฆฌ๊ฑฐ๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ๋ฉˆ์ท„์Šต๋‹ˆ๋‹ค.
๊นจ์ง€๊ฑฐ๋‚˜ ํ•˜์–€ ํŽ˜์ด์ง€์—. ์˜คํ”„๋ผ์ธ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ํ•„์š”ํ•ฉ๋‹ˆ๊นŒ?
์ƒˆ๋กœ ๊ณ ์นจ์ด ๋ฐœ์ƒํ•˜๋Š”์ง€ ํ™•์ธ ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub (
https://github.com/gatsbyjs/gatsby/issues/11524?email_source=notifications&email_token=AAARLB6OVB47GMB5K2242M3PY3RLFA5CNFSM4GUAYCZKYY3PNVWWK3TUL52HS4DFWSVREXG43Z610AHJLOPWSVREXG43VMVBW63LNMVXHW63
) ๋˜๋Š” ๋Œ€ํ™” ๋ชฉ๋ก ์Œ์†Œ๊ฑฐ (
https://github.com/notifications/unsubscribe-auth/AAARLB7QKXUL3AZF4MXCO33PY3RLFANCNFSM4GUAYCZA
).

@KyleAMathews ํ”„๋กœ๋•์…˜ ์‚ฌ์ดํŠธ์—์„œ ๋บ‘์†Œ๋‹ˆ๋ฅผ ์žก๋Š” ๊ฒƒ ์™ธ์—๋Š” ๋กœ์ปฌ์—์„œ ์žฌํ˜„ ํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ๋ณต์ œํ•˜๋ ค๋ฉด Netlify ํ†ตํ•ฉ์„ ์‚ฌ์šฉํ•˜์—ฌ ์™„์ „ํžˆ ์ƒˆ๋กœ์šด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์„ค์ • ํ•œ ๋‹ค์Œ ๊ฒฐ๊ตญ ๋ฐœ๊ฒฌ ํ•  ๋•Œ๊นŒ์ง€ ์—…๋ฐ์ดํŠธ๋ฅผ ๊ณ„์† ํ‘ธ์‹œํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

@coreyward ๊ฐ€ Gatsby ์‚ฌ์ดํŠธ์˜ ๋Œ“๊ธ€์—์„œ ๋” ๋ณด์ž…๋‹ˆ๋‹ค .

๋˜ํ•œ์ด ํ† ๋ก ๊ณผ ๊ด€๋ จํ•˜์—ฌ @Moocar ๋Š” ๋Ÿฐํƒ€์ž„ https://github.com/gatsbyjs/gatsby/pull/13004 ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ๋กœ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๋Œ€๊ทœ๋ชจ ๋ฆฌํŒฉํ„ฐ๋ง ์ž‘์—…์„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค

์ง€๊ธˆ์€ ๋ณต์ œํ’ˆ์ด ์—†์ง€๋งŒ, ์ €์ ˆ๋กœ ์ƒˆ๋กœ ๊ณ ์ณ์ง€์ง€ ์•Š์€ ์ƒํƒœ์—์„œ ์ ์–ด๋„ 6 ๋ฒˆ์€ ๋ณธ ์ ์ด ์žˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

image

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

๊ฐ€๋Šฅํ•œ ์›์ธ์„ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด :
์ œ ๊ฒฝ์šฐ์—๋Š” SSR์—์„œ atob ๋Œ€์‹  new Buffer(val, 'base64').toString(); .
(๊ธฐ๋ณธ์ ์œผ๋กœ atob ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜์—†๋Š” ๊ฒฝ์šฐ node-js ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.)
๊ฐœ๋ฐœ์—์„œ ์ž‘์—…ํ•˜๊ณ  ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ปดํŒŒ์ผํ–ˆ์œผ๋ฉฐ ์ œํ’ˆ ํŽ˜์ด์ง€ ์‹œ์ž‘์‹œ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ํฌํ•จ์œผ๋กœ ์ถฉ๋ถ„ํ–ˆ๊ณ  ์ฝ”๋“œ๋Š” ์‹คํ–‰๋˜์ง€ ์•Š์•˜์œผ๋ฉฐ ์‹œ์ž‘์‹œ๋กœ๋“œ ๋  ์ฒญํฌ์—๋งŒ ์กด์žฌํ–ˆ์Šต๋‹ˆ๋‹ค.

@KyleAMathews Bugsnag๋Š” % ์š”์ฒญ ์ฐจํŠธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š์ง€๋งŒ ๋ถ„์„์—์„œ ๊ณ„์‚ฐํ•˜๊ธฐ์—๋Š” ์ถฉ๋ถ„ํžˆ ์‰ฝ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์ง€๋‚œ 8 ์ผ (์š”์ฒญ ๋น„์œจ๋กœ ํ‘œ์‹œ๋œ ์˜ค๋ฅ˜)์ž…๋‹ˆ๋‹ค.

6/1 2.4 %
6/2 2.3 %
6/3 2.2 %
6/4 2.4 %
6/5 2.4 %
6/6 2.1 %
6/7 2.4 %
6/8 2.4 %

์ฒ˜์Œ์— Gatsby v2.9.4๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•  ๋•Œ ์ด๋Ÿฐ ์ผ์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์„ ๋ณด์•˜์Šต๋‹ˆ๋‹ค. 2.8.5๋กœ ๋˜ ๋Œ๋ฆฌ๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ์ „ํžˆ ์›์ธ์„ ๋ถ„์„ํ•˜๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์ด์™€ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์œผ๋ฉฐ 2.8.5๋กœ ๋‹ค์šด ๊ทธ๋ ˆ์ด๋“œํ•˜์—ฌ ํ•ด๊ฒฐ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒํ•˜๊ธฐ ์ „์— "/"์— ๋Œ€ํ•œ ๋ฆฌ์†Œ์Šค ๋ˆ„๋ฝ ์˜ค๋ฅ˜๊ฐ€ ๊ณ„์† ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

@bmatzner @wilcoxmd ์šฐ๋ฆฌ๋Š” ํ•œ๋™์•ˆ 2.8.x๋ฅผ ์‚ฌ์šฉํ–ˆ์œผ๋ฉฐ v1์—์„œ v2๋กœ ์ฒ˜์Œ ์ด๋™ ํ•œ ์ดํ›„ ๋ชจ๋“  Gatsby ์—…๊ทธ๋ ˆ์ด๋“œ์—์„œ ๋ฆฌ์†Œ์Šค๊ฐ€ ๋ˆ„๋ฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ผ๊ด€๋˜๊ฒŒ v2 ์ดํ›„๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•  ๋•Œ ๊ธ‰์ฆํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

2.8.5 ์ด์ „์— ์šฐ๋ฆฌ๋Š” ํ™•์‹คํžˆ ์˜ค๋žซ๋™์•ˆ ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ์—๋Š” ๋‹ค์–‘ํ•œ ์›์ธ์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. v2.94๋Š” ๋˜ ๋‹ค๋ฅธ ๊ฒƒ์„ ๋„์ž… ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

@bmatzner @wilcoxmd ์šฐ๋ฆฌ๋Š” ํ•œ๋™์•ˆ 2.8.x๋ฅผ ์‚ฌ์šฉํ–ˆ์œผ๋ฉฐ v1์—์„œ v2๋กœ ์ฒ˜์Œ ์ด๋™ ํ•œ ์ดํ›„ ๋ชจ๋“  Gatsby ์—…๊ทธ๋ ˆ์ด๋“œ์—์„œ ๋ฆฌ์†Œ์Šค๊ฐ€ ๋ˆ„๋ฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ผ๊ด€๋˜๊ฒŒ v2 ์ดํ›„๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•  ๋•Œ ๊ธ‰์ฆํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ฐ™์€

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

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

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

2.9.2์—๋Š” ์œ ๋ง ํ•ด ๋ณด์ด๋Š” prod ๋ธŒ๋žœ์น˜๊ฐ€ ์žˆ์ง€๋งŒ ์ง€๊ธˆ๊นŒ์ง€๋Š” ๋ฌธ์ œ๊ฐ€ ์—†์ง€๋งŒ ์ฃผ์š” ํ”„๋กœ๋•์…˜์— ๋น„ํ•ด ํŠธ๋ž˜ํ”ฝ์ด ์ ์Šต๋‹ˆ๋‹ค. ๋ฐฐํฌ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ์ง€๋‚œ์ฃผ Gatsby์— ๋Œ€ํ•œ ํŽ˜์ด์ง€ ๋งค๋‹ˆํŽ˜์ŠคํŠธ ์—…๋ฐ์ดํŠธ๊ฐ€ ๋งŽ์€ ๋„์›€์ด๋˜๊ธฐ๋ฅผ ๋ฐ”๋ผ๋ฉฐ ๊ฒฐ๊ณผ๋ฅผ ๊ฒŒ์‹œ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” 2.9.0์„ ์ƒ์‚ฐ ์ค‘์ด๋ฉฐ ์•ˆํƒ€๊น๊ฒŒ๋„ ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €์—์„œ ํŠธ๋ž˜ํ”ฝ์˜ 1-2 %๋ผ๋Š” ์ด์ „๊ณผ ๋™์ผํ•œ ๋น„์œจ๋กœ ์—ฌ์ „ํžˆ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์— ๋ฒ„์ „ ๋กค๋ฐฑ ์•„๋ž˜๋กœ 2.8.5 ์—์„œ 2.9.4 ์šฐ๋ฆฌ๋ฅผ ์œ„ํ•ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ ํ•œ ๊ฒƒ์œผ๋กœ ๋ณด์ธ๋‹ค.
์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ์—๋Š” ๋ˆ„๋ฝ ๋œ pages-manifest-{hash}.js[.map] ํŒŒ์ผ๊ณผ ๊ด€๋ จ๋œ ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค.
2.9.3 ๋ฐ 2.9.4 ๋ฒ„์ „์—๋Š” ์ž ์žฌ์  ์ธ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค. https://github.com/gatsbyjs/gatsby/pull/14732 ์ฐธ์กฐ (Gatsby ํŒจํ‚ค์ง€ ๋ณ€๊ฒฝ ๋กœ๊ทธ : https://github.com /gatsbyjs/gatsby/blob/master/packages/gatsby/CHANGELOG.md).
์ด๋ฅผ ํ™•์ธํ•˜๊ธฐ์œ„ํ•œ ๋งˆ์ง€๋ง‰ ํ…Œ์ŠคํŠธ๋Š” Gatsby๋ฅผ 2.9.2 ๊นŒ์ง€ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ฐธ๊ณ ๋กœ @moocar ๋Š” ๋ฆฌ์†Œ์Šค ๋กœ๋”ฉ์„ ๋”์šฑ ๊ฐ•๋ ฅํ•˜๊ฒŒ ๋งŒ๋“ค๊ธฐ์œ„ํ•œ PR์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์žฌ์‹œ๋„ ์‹คํŒจ ๋˜๋Š” ๋ถ€๋ถ„์ ์œผ๋กœ๋กœ๋“œ ๋œ ๋ฆฌ์†Œ์Šค https://github.com/gatsbyjs/gatsby/pull/14889

๋‹น์‹  ์ค‘ ๋ˆ„๊ตฌ๋ผ๋„ ๊ทธ๊ฒƒ์„ ๊ฒ€ํ†  / ์‹œ๋„ ํ•  ์‹œ๊ฐ„์ด ์žˆ๋‹ค๋ฉด, ๋Œ€๋‹จํžˆ ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ์ผ์ฐ ํŒŒ์•…ํ•˜์ง€ ๋ชปํ•ด ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ์ตœ๊ทผ @Moocar๋ฅผ ํ†ตํ•ด์ด ๋ฌธ์ œ๊ฐ€ ์–ผ๋งˆ๋‚˜ ๋„๋ฆฌ ํผ ์กŒ๋Š”์ง€ ๋˜๋Š” ์›์ธ์ด ๋ฌด์—‡์ธ์ง€ ํ™•์‹คํ•˜์ง€

๋” ๋งŽ์€ ๋„์›€์ด ๋ ์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ๋ช‡ ๋ถ„ ์ „์— https://gatsbyjs.org/contributing ํ–ˆ์Šต๋‹ˆ๋‹ค.

Screenshot 2019-06-19 at 17 04 17

์žฌ ์žฅ์ „ ํ›„ ์ˆ˜์ •๋˜์—ˆ์ง€๋งŒ ์—ฌ๊ธฐ์— ๋„ฃ์„ ๊ฐ€์น˜๊ฐ€์žˆ๋Š” ๊ฒƒ ๊ฐ™์•˜์Šต๋‹ˆ๋‹ค @KyleAMathews

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

์˜คํ”„๋ผ์ธ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๋งŽ์ด ์ž‘์„ฑ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์Œ ์ฃผ์— ์‹œ๋„ํ•ด ๋ณด๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์Šฌํ”„๊ฒŒ๋„ ์ตœ๊ทผ์—๋Š” ์‹œํ—˜์œผ๋กœ ์ •๋ง ๋ฐ”์˜๊ณ  ์ด์‚ฌ ํ•  ๊ณ„ํš

@ davidbailey00 ๋””๋ฒ„๊น…์— ๋„ˆ๋ฌด ๊นŠ์ด ์žˆ๋“  ์—†๋“  ์ด๊ฒƒ์„ ๊ฒฝํ—˜ํ•ฉ๋‹ˆ๋‹ค.

@ davidbailey00 ์šฐ๋ฆฌ๋Š” ์˜คํ”„๋ผ์ธ ํ”Œ๋Ÿฌ๊ทธ์ธ ์—†์ด๋„ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ๋…ธ๋“œ ๋ชจ๋“ˆ์— ์žˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ๋‚ด ๊ตฌ์„ฑ ํŒŒ์ผ์—์„œ ์ฃผ์„ ์ฒ˜๋ฆฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์˜คํ”„๋ผ์ธ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์„ค์น˜๋˜์ง€ ์•Š์€ ์ƒํƒœ์—์„œ๋„์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

@ davidbailey00 ์˜ˆ ์šฐ๋ฆฌ๋Š” ์ฃผ์š” ์ˆ˜์ • ์‚ฌํ•ญ์ด ajax ์š”์ฒญ์— ๋Œ€ํ•œ ๋น„์ •์ƒ์ ์ธ ์˜ค๋ฅ˜ ์‚ฌ๋ก€๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•˜๊ณ  ์žฌ์‹œ๋„ ๋…ผ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค https://github.com/gatsbyjs/gatsby/pull/14889

์ง€๋‚œ 4 ~ 5 ์ผ ๋™์•ˆ gatsbyjs.org์— PR์„ ๋ฐฐํฌํ–ˆ์œผ๋ฉฐ ์ƒํ™ฉ์ด ์ •๋ง ์ข‹์•„ ๋ณด์ž…๋‹ˆ๋‹ค! ๋ฐฐํฌ ์ดํ›„ ์ƒˆ๋กœ์šด "์ž์› ๋ˆ„๋ฝ"์ด๋ฒคํŠธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

https://github.com/gatsbyjs/gatsby/pull/14889#issuecomment -505872897

@wardpeet ์€ ๋„คํŠธ์›Œํฌ ๋ฌธ์ œ๋ฅผ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜๊ธฐ ์œ„ํ•ด ๋ช‡ ๊ฐ€์ง€ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ ์ค‘์ด์ง€๋งŒ ์•ž์œผ๋กœ 24 ์‹œ๊ฐ„

@KyleAMathews ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.์ด ์‹คํ–‰์„ ๊ธฐ๋‹ค๋ฆด ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค!

@KyleAMathews ์—…๋ฐ์ดํŠธ์— ๋Œ€ํ•œ ๊ท€ํ•˜์™€ ๊ท€ํ•˜์˜ ํŒ€์—๊ฒŒ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

@KyleAMathews ๋‚ด ์‚ฌ์ดํŠธ์—์„œ์ด ๋ฌธ์ œ๊ฐ€ ๊ณ„์† ๋ฐœ์ƒํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋กœ์ปฌ์—์„œ๋Š” ์ž˜ ์ž‘๋™ํ•˜์ง€๋งŒ ์ฐŒ๋ฅด๋Š” ๊ฒƒ์€ ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์œ„์˜ ์˜๊ฒฌ ์ค‘ ์ผ๋ถ€์ฒ˜๋Ÿผ ์‚ฐ๋ฐœ์ ์œผ๋กœ๋Š” ์•„๋‹ˆ์ง€๋งŒ 100 % ํ•ญ์ƒ๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๋Œ€๋ถ€๋ถ„์˜ ์†”๋ฃจ์…˜์„ ์‚ดํŽด ๋ดค์ง€๋งŒ์ด๋ฅผ ํ™œ์šฉํ•ด๋„ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๋ญ”๊ฐ€ ๋‹ค๋ฅธ ๊ฒƒ์„ ์น˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋„๋ก ์ˆ˜์ • ๋œ Gatsby์˜ ํŠน์ • ๋ฒ„์ „์ด ์žˆ์Šต๋‹ˆ๊นŒ?

Gatsby ํŒ€์˜ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์‚ดํŽด๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด ๋น„๊ณต๊ฐœ๋กœ URL์„ ๊ณต์œ ํ•˜๊ณ  ๋น„๊ณต๊ฐœ ์ €์žฅ์†Œ์— contrib ์•ก์„ธ์Šค๋ฅผ ์ถ”๊ฐ€ ํ•  ์˜ํ–ฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค (DM me on twitter ). ํŒ / ์ œ์•ˆ์„ ๋ณด๋‚ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ ํ•œ ๋‚ด์šฉ์„ ๋ช…ํ™•ํžˆํ•˜๊ธฐ ์œ„ํ•ด :

  • gatsby-browser.js์— ์„œ๋น„์Šค ์›Œ์ปค ๋‹ค์‹œ๋กœ๋“œ ์ถ”๊ฐ€
  • ์˜คํ”„๋ผ์ธ ํ”Œ๋Ÿฌ๊ทธ์ธ ์ œ๊ฑฐ
  • ๋ชจ๋“  ๋…ธ๋“œ ๋ชจ๋“ˆ ์—…๋ฐ์ดํŠธ
  • . ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ€์ ธ ์˜ค๊ธฐ๊ฐ€ ์ฐธ์กฐ๋˜์ง€ ์•Š๋Š”์ง€ ํ™•์ธ

์ด ๋ฌธ์ œ๋Š” ์ตœ์‹  ๊ฐœ์ธ ๋น„ ๋ฆด๋ฆฌ์Šค [email protected] ์—์„œ ์ˆ˜์ •ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. gatsbyjs.org์—์„œ ์‹คํ–‰ํ–ˆ๊ณ  ์˜ค๋ฅ˜๋Š” ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค.

์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ณ  ๋” ์ด์ƒ ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉด ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค! ์ง€๊ธˆ์€ ์ด๊ฒƒ์„ ๋‹ซ์Šต๋‹ˆ๋‹ค.

@KyleAMathews ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค-๋ถˆํ–‰ํžˆ๋„ ๋ฆฌ์†Œ์Šค ๋ˆ„๋ฝ ์˜ค๋ฅ˜๊ฐ€

@KyleAMathews ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค-๋ถˆํ–‰ํžˆ๋„ ๋ฆฌ์†Œ์Šค ๋ˆ„๋ฝ ์˜ค๋ฅ˜๊ฐ€

๋ฆฌ์†Œ์Šค๊ฐ€ ์‚ญ์ œ๋˜๊ณ  ๋‹ค๋ฅธ ์˜ค๋ฅ˜๋กœ ๋Œ€์ฒด ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ˆ„๋ฝ ๋œ ๋ฆฌ์†Œ์Šค๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. https://github.com/gatsbyjs/gatsby/pull/14889/files#diff -3182dbe2979ea0744c50242668edc572L173

์ตœ๊ทผ์—์ด ์ˆ˜์ • ์‚ฌํ•ญ์„ ๋ฐฐํฌํ•˜์—ฌ ์ƒˆ๋กœ์šด / ๋‹ค๋ฅธ ์˜ค๋ฅ˜์— ๋Œ€ํ•œ ๋ฒ„๊ทธ ๋กœ๊ทธ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

ํŽธ์ง‘ : ์˜ˆ this.loadPageDataJson(...).then(...).finally is not a function ๊ฐ€ ์ƒˆ๋กœ์šด missing resources ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

@jackhair ์–ด๋–ค ๋ธŒ๋ผ์šฐ์ €์—์„œ ํ…Œ์ŠคํŠธํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” ์šฐ๋ฆฌ๊ฐ€ ๋งˆ์นจ๋‚ด polyfill์„ ์ถ”๊ฐ€ํ–ˆ๋‹ค๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜๋„ ํ‹€๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹น์‹ ์˜ repo๋ฅผ ๊ณต์œ  ํ•  ๋งˆ์Œ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋˜๋Š” ์ž‘์€ ๋ณต์ œ?

@jackhair ์–ด๋–ค ๋ธŒ๋ผ์šฐ์ €์—์„œ ํ…Œ์ŠคํŠธํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” ์šฐ๋ฆฌ๊ฐ€ ๋งˆ์นจ๋‚ด polyfill์„ ์ถ”๊ฐ€ํ–ˆ๋‹ค๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜๋„ ํ‹€๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹น์‹ ์˜ repo๋ฅผ ๊ณต์œ  ํ•  ๋งˆ์Œ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋˜๋Š” ์ž‘์€ ๋ณต์ œ?

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

Screen Shot 2019-07-02 at 13 29 03

์›น ์‚ฌ์ดํŠธ URL์„ ๊ณต์œ ํ•ด ์ฃผ์‹œ๊ณ  ์กฐ๊ธˆ์ด๋ผ๋„ ๋””๋ฒ„๊ทธ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

์›น ์‚ฌ์ดํŠธ URL์„ ๊ณต์œ ํ•ด ์ฃผ์‹œ๊ณ  ์กฐ๊ธˆ์ด๋ผ๋„ ๋””๋ฒ„๊ทธ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

ํ™•์‹คํ•œ! https://ritual.com

@jackhair ๋ฒ„๊ทธ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์œ„์— ์ œ๊ณต๋œ ์ •๋ณด๋กœ ์ƒˆ๋กœ์šด ๋ฌธ์ œ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@wardpeet @jackhair ์šฐ๋ฆฌ๋Š” ๋˜ํ•œ์ด finally polyfill ๋ฌธ์ œ๋ฅผ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ๋ฌธ์ œ๊ฐ€ ์ถ”๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๊นŒ? ์ œ๋ฐœ ์ด๊ฑธ ์‹ฌํŒ ํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

@eknowles @wardpeet ์•„์ง ๋ฒ„๊ทธ ํ‹ฐ์ผ“์„ ์“ธ ์‹œ๊ฐ„์ด ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ์œ  ์‹œ๊ฐ„์ด ์žˆ๊ณ  ์ƒ์„ฑํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๋‚ด ๋ฐ์ดํ„ฐ๋กœ๋„ ๋ฐฑ์—… ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@wardpeet @jackhair ๋“œ๋””์–ด polyfill๋กœ ๋ฌธ์ œ๋ฅผ ์ถ”์ ํ–ˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์˜์กด์„ฑ ์ค‘ ํ•˜๋‚˜๊ฐ€ ํ•ญ๋ชฉ ๋Œ€์‹  useBuiltins : ์‚ฌ์šฉ์— babel-polyfill์„ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค.

์–ด๋Š ์ชฝ์ด๋“  ์šฐ๋ฆฌ๋Š” redux-api-middleware๋ฅผ ๋‹ค์šด ๊ทธ๋ ˆ์ด๋“œํ•ด์•ผํ–ˆ์Šต๋‹ˆ๋‹ค (gatbsy์™€ ๊ด€๋ จ์ด ์—†์Œ).
https://github.com/agraboso/redux-api-middleware/compare/v2.3.0...v3.0.0

์ด๊ฒƒ์€ ์šฐ๋ฆฌ์˜ finally ๋ฒ„๊ทธ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์Šคํƒ ์ถ”์ ์„ ๋”ฐ๋ผ ์ฒด์ธ์„ ๋”ฐ๋ผ ๊ฐ€๊ณ  Promise polyfill์ด ์žฌ์ •์˜๋˜์—ˆ์ง€๋งŒ ๋ถˆ์พŒํ•œ lib๊ฐ€ ๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์–ด๋–ค lib๊ฐ€ ๋ฒ”์ธ์ธ์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค, ์šฐ๋ฆฌ๋Š” ์ด์ „์— node_modules์™€ babel-runtime์—์„œ ์ด๊ฒƒ์„ ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์•ž์œผ๋กœ์ด ๋ฌธ์ œ๋ฅผ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๋‹ค์‹œ ์ƒ๊ฐํ•˜๊ฑฐ๋‚˜ ์ตœ์†Œํ•œ ์ ์ ˆํ•œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ œ๊ณตํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

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