publicLoader.loadPage
.cache/production-app.js
์์ด ์ค๋ฅ์ ๋ํ Safari ๋ฐ Mobile Safari (๋ค์ํ ๋ฒ์ ๋ฐ ๋ธ๋ผ์ฐ์ )์ Bugsnag ๋ณด๊ณ ์๊ฐ ์ฌ๋ฌ ๊ฐ ์์ต๋๋ค.
macOS Safari์์์ด ์ค๋ฅ๊ฐ ํ์๋์ง ์์ต๋๋ค. ์น ์ฌ์ดํธ๋ https://lebikini.com์ ๋๋ค.
์ค๋ฅ ์์
์ค๋ฅ
System:
OS: macOS 10.14.6
CPU: (8) x64 Intel(R) Core(TM) i5-8259U CPU @ 2.30GHz
Shell: 5.3 - /bin/zsh
Binaries:
Node: 10.15.3 - ~/.nvm/versions/node/v10.15.3/bin/node
Yarn: 1.19.0 - /usr/local/bin/yarn
npm: 6.12.0 - ~/.nvm/versions/node/v10.15.3/bin/npm
Languages:
Python: 2.7.16 - /usr/local/bin/python
Browsers:
Chrome: 78.0.3904.97
Firefox: 70.0
Safari: 13.0.3
npmPackages:
gatsby: ^2.17.13 => 2.17.13
gatsby-image: ^2.2.32 => 2.2.32
gatsby-plugin-google-analytics: ^2.1.26 => 2.1.26
gatsby-plugin-manifest: ^2.2.27 => 2.2.27
gatsby-plugin-netlify: ^2.1.24 => 2.1.24
gatsby-plugin-react-helmet: ^3.1.14 => 3.1.14
gatsby-plugin-sharp: ^2.2.38 => 2.2.38
gatsby-plugin-styled-components: ^3.1.12 => 3.1.12
gatsby-plugin-typescript: ^2.1.17 => 2.1.17
gatsby-source-filesystem: ^2.1.36 => 2.1.36
gatsby-transformer-sharp: ^2.3.4 => 2.3.4
ํ์ผ!
์ด ๋ฌธ์ ๋ ์กฐ์ฉํด์ก์ต๋๋ค. ๋ฌด์ ๋ฌด์ํ ์กฐ์ฉํจ. ๐ป
๋ง์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฏ๋ก ํ์ฌ 30 ์ผ ๋์ ํ๋์ด ์์ผ๋ฉด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค. ์ฌ๊ธฐ์ ๋ง์ง๋ง์ผ๋ก ์
๋ฐ์ดํธ ํ ์ง 20 ์ผ์ด ์ง๋ฌ์ต๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ๋์ณค๊ฑฐ๋ ๊ณ์ ์ด๋ ค๊ณ ์ถ๋ค๋ฉด ์ฌ๊ธฐ์์ ๋ต์ฅ ํด์ฃผ์ธ์. ์ด ๋ฌธ์ ๋ฅผ ๊ณ์ ์ด์ด๋๊ธฐ ์ํด "๋ถ์คํ์ง ์์"์ด๋ผ๋ ๋ ์ด๋ธ์ ์ถ๊ฐ ํ ์๋ ์์ต๋๋ค.
์ด ๋ฌธ์ ๋ ๋ค๋ฅธ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ Pull Request๋ฅผ ์ฌ๋ ๊ฒ์
๋๋ค. PR ์ด๊ธฐ, ๋ฌธ์ ๋ถ๋ฅ ๋ฐ ๊ธฐ์ฌ์ ๋ํ ์์ธํ ์ ๋ณด๋ gatsby.dev/contribute ๋ฅผ ํ์ธํ์ญ์์ค!
Gatsby ์ปค๋ฎค๋ํฐ์ ์ผ์์ด๋์ด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค! ๐ช๐
@antoinerousseau ๊ฐ ๋ ๋์ ์คํ
์์ผ๋ก ๋์๊ฐ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ๋ฌด์์ด๋ผ๊ณ ์๊ฐํ์ญ๋๊น? ๋ชจ๋ฐ์ผ ์ฌํ๋ฆฌ / ์ฌํ๋ฆฌ์์ ์ง์ ์ฌ์ฉํด ๋ณด์ จ์ต๋๊น?
@wardpeet ์ด๊ฒ์ ์กฐ์ฌํด ์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค.
Safari ๋ฐ์คํฌํ์ผ๋ก ์๋ํ์ง๋ง ์ฌํ ํ ์ ์์ต๋๋ค. ์ ๋ iPhone์ ๊ฐ์ง๊ณ ์์ง ์์ต๋๋ค.
๋๋๋ก ๋ฌด์์๋ก ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ์งํ ๋ฐฉ๋ฒ์ ์ ๋ชจ๋ฅด๊ฒ ์ง๋ง ๋ ๋์ ์คํ ์ถ์ ์ ์ด์จ๋ ํด๋ฅผ ๋ผ์น ์ ์์ต๋๋ค.
85 %์ ๋ชจ๋ฐ์ผ ์ฌํ๋ฆฌ, 10 %์ ์ฌํ๋ฆฌ, 5 %์ ํฌ๋กฌ ๋ชจ๋ฐ์ผ iOS์์ 124 ๋ฒ๋ง ๋ฐ์ํ์ต๋๋ค. ๋ค์ํ ๋ฒ์ .
๋ํ URL์ด ํญ์ /
๊ฒ์ ์๋๋๋ค. ์ํ๋ ๊ฒฝ์ฐ Bugsnag ๊ณ์ ์ ๋ํ ์ก์ธ์ค ๊ถํ์ ์ ๊ณต ํ ์ ์์ต๋๋ค.
์ค๋๋ ๊ฐ์ ๋ฒ๊ทธ ๋ณด๊ณ ์๋ฅผ ๋ฐ์์ต๋๋ค. ๋น์ ์ด ํผ์๊ฐ ์๋๋ผ๋ ๊ฒ์ ์๋ฆฌ๊ธฐ ์ํด์์ ๋๋ค.
ํ์ผ!
์ด ๋ฌธ์ ๋ ์กฐ์ฉํด์ก์ต๋๋ค. ๋ฌด์ ๋ฌด์ํ ์กฐ์ฉํจ. ๐ป
๋ง์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฏ๋ก ํ์ฌ 30 ์ผ ๋์ ํ๋์ด ์์ผ๋ฉด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค. ์ฌ๊ธฐ์ ๋ง์ง๋ง์ผ๋ก ์
๋ฐ์ดํธ ํ ์ง 20 ์ผ์ด ์ง๋ฌ์ต๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ๋์ณค๊ฑฐ๋ ๊ณ์ ์ด๋ ค๊ณ ์ถ๋ค๋ฉด ์ฌ๊ธฐ์์ ๋ต์ฅ ํด์ฃผ์ธ์. ์ด ๋ฌธ์ ๋ฅผ ๊ณ์ ์ด์ด๋๊ธฐ ์ํด "๋ถ์คํ์ง ์์"์ด๋ผ๋ ๋ ์ด๋ธ์ ์ถ๊ฐ ํ ์๋ ์์ต๋๋ค.
์ด ๋ฌธ์ ๋ ๋ค๋ฅธ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ Pull Request๋ฅผ ์ฌ๋ ๊ฒ์
๋๋ค. PR ์ด๊ธฐ, ๋ฌธ์ ๋ถ๋ฅ ๋ฐ ๊ธฐ์ฌ์ ๋ํ ์์ธํ ์ ๋ณด๋ gatsby.dev/contribute ๋ฅผ ํ์ธํ์ญ์์ค!
Gatsby ์ปค๋ฎค๋ํฐ์ ์ผ์์ด๋์ด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค! ๐ช๐
๋ ์๋ !
์ด ๋ฌธ์ ์ ๋ํด ๋ฌด์จ ์ผ์ด ์ผ์ด๋ ์ง 30 ์ผ์ด ์ง๋ฌ์ผ๋ฏ๋ก ์ฐ๋ฆฌ์ ์น์ ํ ์ด์ ๋ก๋ด (๋์ผ!)์ด ๋ฌธ์ ๋ซ์ ๊ฒ์
๋๋ค.
์ ๋ ๋ก๋ด ์ผ ๋ฟ์ด๋ฏ๋ก์ด ๋ฌธ์ ๋ฅผ ์ค์๋ก ์ข
๋ฃํ๋ค๋ฉด HUMAN_EMOTION_SORRY
์
๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ๋ค์ ์ด๊ฑฐ ๋ ๋ค๋ฅธ ๊ฒ์ด ํ์ํ๋ฉด ์ ๋ฌธ์ ๋ฅผ ๋ง๋์ญ์์ค.
์ด ๋ฌธ์ ๋ ๋ค๋ฅธ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ Pull Request๋ฅผ ์ฌ๋ ๊ฒ์
๋๋ค. PR ์ด๊ธฐ, ๋ฌธ์ ๋ถ๋ฅ ๋ฐ ๊ธฐ์ฌ์ ๋ํ ์์ธํ ์ ๋ณด๋ gatsby.dev/contribute ๋ฅผ ํ์ธํ์ญ์์ค!
Gatsby ์ปค๋ฎค๋ํฐ์ ์ฐธ์ฌํด ์ฃผ์ ์ ๋ค์ ํ ๋ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค! ๐ช๐
๊ฐ์ ๊ฒ์ ๋ณธ๋ค.
/
์ด์ง๋ง ๋ค๋ฅธ ํ์ด์ง๋ ๊ฑฐ์ ์์ต๋๋ค.์ฌ๊ธฐ๋ ๋ง์ฐฌ๊ฐ์ง์
๋๋ค. / index ์ด์ธ์ ํ์ด์ง์ ๊ฒฝ์ฐ.
์ฅ์น
๋ธ๋๋ | ํ์จ์ด
๊ฐ์กฑ | DRA-LX5
OS
์ด๋ฆ | ๊ธฐ๊ณ์ ์ธ์กฐ ์ธ๊ฐ
๋ฒ์ | 8.1.0
๋ธ๋ผ์ฐ์
์ด๋ฆ | Chrome ๋ชจ๋ฐ์ผ WebView
๋ฒ์ | 70.0.3538
SDK
์ด๋ฆ | sentry.javascript.browser
๋ฒ์ | 5.12.1
ํ์ผ!
์ด ๋ฌธ์ ๋ ์กฐ์ฉํด์ก์ต๋๋ค. ๋ฌด์ ๋ฌด์ํ ์กฐ์ฉํจ. ๐ป
๋ง์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฏ๋ก ํ์ฌ 30 ์ผ ๋์ ํ๋์ด ์์ผ๋ฉด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค. ์ฌ๊ธฐ์ ๋ง์ง๋ง์ผ๋ก ์
๋ฐ์ดํธ ํ ์ง 20 ์ผ์ด ์ง๋ฌ์ต๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ๋์ณค๊ฑฐ๋ ๊ณ์ ์ด๋ ค๊ณ ์ถ๋ค๋ฉด ์ฌ๊ธฐ์์ ๋ต์ฅ ํด์ฃผ์ธ์. ์ด ๋ฌธ์ ๋ฅผ ๊ณ์ ์ด์ด๋๊ธฐ ์ํด "๋ถ์คํ์ง ์์"์ด๋ผ๋ ๋ ์ด๋ธ์ ์ถ๊ฐ ํ ์๋ ์์ต๋๋ค.
์ด ๋ฌธ์ ๋ ๋ค๋ฅธ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ Pull Request๋ฅผ ์ฌ๋ ๊ฒ์
๋๋ค. PR ์ด๊ธฐ, ๋ฌธ์ ๋ถ๋ฅ ๋ฐ ๊ธฐ์ฌ์ ๋ํ ์์ธํ ์ ๋ณด๋ gatsby.dev/contribute ๋ฅผ ํ์ธํ์ญ์์ค!
Gatsby ์ปค๋ฎค๋ํฐ์ ์ผ์์ด๋์ด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค! ๐ช๐
์ฌ์ ํ ๋ฌธ์ ์ ๋๋ค.
์ด ๋ฌธ์ ๋ ๋ฐ๊ณ ์์ต๋๋ค. gatsby develop
์ (๋) ์ ๋๋ก ์๋ํ์ง๋ง gatsby build
์ธํด ์์ฉ ํ๋ก๊ทธ๋จ์ด "์ค๋ฅ : ํ์ด์ง ๋ฆฌ์์ค์ ๋ํ / ์ฐพ์ ์ ์์. ๋ฐ์์ ๋ ๋๋งํ์ง ์์"๊ณผ ํจ๊ป ์ค๋จ๋ฉ๋๋ค. ๋น๋ ์์ฒด๊ฐ ์ฑ๊ณตํ๋๋ผ๋ ๋ฐํ์์.
Typescript๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค๋ ์ฌ์ค ๋๋ฌธ์ผ๊น์?
gatsby clean
์คํ์ ์๋ํ์ต๋๋ค
์
๋ฐ์ดํธ / ๊ฐ๋ฅํ ํด๊ฒฐ์ฑ
: ".env.production"ํ์ผ์ด ์๋ ".env.development"ํ์ผ ๋ง ์์๊ธฐ ๋๋ฌธ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค. ์ ์ด๊ฒ์ด ๋ชจํธํ๊ณ ํผ๋์ค๋ฌ์ด ์ค๋ฅ๋ฅผ ์ผ์ผํค๊ณ React๊ฐ ๋ ๋๋งํ์ง ๋ชปํ๊ฒํ๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ์์๋๋ ๋์์ด gatsby develop
์คํํ ๋ ๋ฐ์ํ๋ ๋์๊ณผ ๋์ผํ ๋์์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. gatsby develop
์คํํ๊ณ .env.development ํ์ผ์ด ์์ผ๋ฉด React๋ ์ฌ์ ํ ๋ ๋๋ง๋์ง๋ง ์ค์ํ ๊ฐ์ด ๋๋ฝ๋์ด ๋ด ์ฑ์ด ์ถฉ๋ํฉ๋๋ค.
๋๋ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๋ด ์ฑ์ AWS์์ ํธ์คํ
๋๊ณ Cloudfront๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์กด์ฌํ์ง ์๋ ๋ชจ๋ URL์ ์ํ๊ฐ 200 ์ธ 404.html ํ์ด์ง๋ก ๋ฆฌ๋๋ ์
ํ๋ ์ ์ฑ
์ด ์์ต๋๋ค. ์ด์ํ๊ฒ ๋ณด์ด์ง๋ง ์ฐ๋ฆฌ ๊ธฐ๋ฅ ์ค ํ๋์ ์ ๋ง ์ค์ํฉ๋๋ค. ๋ฐ๋ผ์ my-test-site.com/some-not-existed-page
window.pagePath
๊ฒ์ ์
๋ ฅํ๋ฉด /404.html
์ด๋์ง๋ง publicLoader.loadPage
somewhy๋ 404.html
์๋๋ก๋ํ๋ ค๊ณ ํฉ๋๋ค. ํ์ด์ง ์ฝํ
์ธ ์ด์ง๋ง /my-test-site.com/some-not-existed-page
. ์ค์ ๋ก window.location.pathname
ํ์ง๋ง window.pagePath
๋ ์ฌ์ฉํ์ง ์์ต๋๋ค.
์ค๋ Sentry์์ ๋์ผํ ์ค๋ฅ ๋ฉ์์ง๋ฅผ ๋ฐ์์ต๋๋ค. ์ฐพ์ ์ ์์ต๋๋ค. React๋ฅผ ๋ ๋๋งํ์ง ์์
์ด ๋ฌธ์ ๋ ๋ฐ์ํ์ต๋๋ค. ์ ์๊ฒ๋ pages/index.js
ํ์ผ์์ ์์ ์ ๊ตฌ์ฑ ์์์ ๋ํด ๋ช
๋ช
๋ ๊ฐ์ ธ ์ค๊ธฐ๋ฅผ ์ฌ์ฉํ ๋ ์ฌํ ๊ฐ๋ฅํ์ต๋๋ค.
์
import Layout from "../components/Layout";
โ
import { Layout } from "../components";
๐ซ
components/index.js
๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
import Layout from "./Layout"
export {
Layout
};
์ด๊ฒ์ MacOS catelina & chrome ๋ฒ์ 80.0.3987.149์
๋๋ค.
"gatsby": "^2.20.13",
์ฃผ๋ชฉํ ์ ์ ๋ด๊ฐ expo gatsby ๋ณํ์ ์ฌ์ฉํ๊ณ ์๋ค๋ ๊ฒ์ ๋๋ค.
๊นจ๋ํ gatsby build
์คํํ ๋๋์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ผ๋ฉฐ ๊ทผ๋ณธ ์์ธ์ acorn
ํจํค์ง ์ทจ์ฝ์ ์ ๋ํ ๋ด package.json์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด์์ต๋๋ค (https://snyk.io/vuln/npm ์ฐธ์กฐ). :๋ํ ๋ฆฌ):
"resolutions": {
"acorn": "^7.1.1"
}
์ด ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ ๊ฑฐํ๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค.
gatsby info
์ถ๋ ฅ :
System:
OS: macOS 10.15.4
CPU: (4) x64 Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz
Shell: 5.7.1 - /bin/zsh
Binaries:
Node: 12.10.0 - /usr/local/bin/node
Yarn: 1.22.4 - ~/.yarn/bin/yarn
npm: 6.14.4 - /usr/local/bin/npm
Languages:
Python: 2.7.17 - /usr/local/bin/python
Browsers:
Chrome: 81.0.4044.92
Safari: 13.1
npmPackages:
gatsby: 2.20.20 => 2.20.20
gatsby-plugin-material-ui: 2.1.6 => 2.1.6
gatsby-source-graphql: 2.4.0 => 2.4.0
์ฌ์ ํ ๋ง์ด ๋ฐ์ํฉ๋๋ค (์ง๋ ์ฃผ ๋์ 4,500 ํ ์ด์) :
๋ชจ๋ฐ์ผ Safari์ Stacktrace :
.cache/production-app.js:128:12
126 publicLoader.loadPage(browserLoc.pathname).then(page => {
127 ย if (!page || page.status === PageResourceStatus.Error) {
128 ย throw new Error(
129 `page resources for ${browserLoc.pathname} not found. Not rendering React`
130 )
131 ย }
Chrome Mobile์ Stacktrace :
/app-ac76ae7860adc4ef4414.js:1:179819
๋นต ๋ถ์ค๋ฌ๊ธฐ:
์๊ฐ | ์ ํ | ์ค๋ฅ | ์ ๋ณด
-| -| -| -
4ms ์ | ์์ฒญ | XMLHttpRequest ์ค๋ฅ | GET /page-data/app-data.json
5ms ์ | ์์ฒญ | XMLHttpRequest ์ค๋ฅ | GET /page-data/index/page-data.json
6ms ์ | ์์ฒญ | XMLHttpRequest ์ค๋ฅ | GET /page-data/app-data.json
7ms ์ | ์์ฒญ | XMLHttpRequest ์ค๋ฅ | GET /page-data/index/page-data.json
10ms ์ | ์์ฒญ | XMLHttpRequest ์ค๋ฅ | GET /page-data/app-data.json
10ms ์ | ์์ฒญ | XMLHttpRequest ์ค๋ฅ | GET /page-data/index/page-data.json
๋๋ถ๋ถ์ Mobile Safari ๋ฐ Chrome Mobile์์ ๋ฐ์ํฉ๋๋ค.
๊ฐ์ธ ๋น ๋ฒ์ : 2.20.13
์ด ์๋ฃจ์
์ ํ์ธํ์ญ์์ค.
https://github.com/gatsbyjs/gatsby/issues/11461#issuecomment -459732145
๋๋ gatsby-plugin-offline
์ฌ์ฉํ์ง ์๊ธฐ ๋๋ฌธ์ ์๋น์ค ์์ปค๊ฐ ์์ต๋๋ค.
์ง์ ์ด ์์ต๋๊น? ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ณ ํ๋ฌ๊ทธ์ธ์ด ์คํ๋ผ์ธ ์ํ์ด๋ฉฐ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋์ง ํ ์คํธํ๊ธฐ ์ํด ํ๋ฌ๊ทธ์ธ์ ๋นํ์ฑํ ํ ์ ์์ต๋๋ค.
๋๋ ์ด๊ฒ์ด ์คํ๋ผ์ธ ํ๋ฌ๊ทธ์ธ๊ณผ ๊ด๋ จ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ฐ๋ฆฌ๋ ์ด๋ฌํ ์ค๋ฅ๋ฅผ ๋ง์ด๋ณด๊ณ ์์ผ๋ฉฐ ์ฌ์ฉํ ์ ์ด ์์ต๋๋ค.
์ฌํํ๋ ค๋ฉด :
์ด๊ฒ์ ์ด๋ป๊ฒ ๋๋ฒ๊น ํฉ๋๊น? 404 ๋๋ ๊ธฐํ ๋คํธ์ํฌ ์์ฒญ์ด ์์ผ๋ฏ๋ก ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ์ดํดํ ์ ์์ต๋๋ค. ๋ก์ปฌ ๋ฒ์ ์ ๋ค์๊ณผ ๊ฐ์ง๋ง ๋น๋๋ Netlify์์ ๋ฐ์ํฉ๋๋ค.
System:
OS: macOS 10.15.3
CPU: (4) x64 Intel(R) Core(TM) i5-8210Y CPU @ 1.60GHz
Shell: 5.7.1 - /bin/zsh
Binaries:
Node: 12.16.1 - ~/.nvm/versions/node/v12.16.1/bin/node
Yarn: 1.22.4 - ~/.yarn/bin/yarn
npm: 6.14.4 - ~/.nvm/versions/node/v12.16.1/bin/npm
Languages:
Python: 2.7.16 - /usr/bin/python
Browsers:
Chrome: 81.0.4044.122
Firefox: 75.0
Safari: 13.0.5
npmPackages:
gatsby: 2.21.1 => 2.21.1
gatsby-image: 2.4.0 => 2.4.0
gatsby-plugin-graphql-loader: 1.0.2 => 1.0.2
gatsby-plugin-module-resolver: 1.0.3 => 1.0.3
gatsby-plugin-page-creator: 2.3.0 => 2.3.0
gatsby-plugin-react-helmet: 3.3.0 => 3.3.0
gatsby-plugin-sharp: 2.6.0 => 2.6.0
gatsby-plugin-typescript: 2.4.0 => 2.4.0
gatsby-source-contentful: 2.3.1 => 2.3.1
gatsby-transformer-remark: 2.8.0 => 2.8.0
gatsby-transformer-sharp: 2.5.0 => 2.5.0
์ฐ๋ฆฌ์ ๊ฒฝ์ฐ์๋ ๊ธฐ๋ณธ ๋ด๋ณด๋ด๊ธฐ๋ก ํ์ด์ง๊ฐ ์์๊ณ ํ์ด์ง ํ์ผ์๋ ์ด๋ฆ์ด ์ง์ ๋ ๋ด๋ณด๋ด๊ธฐ๊ฐ์์์ต๋๋ค. ํ์ด์ง ํ์ผ ์ธ๋ถ์์ ๋ช ๋ช ๋ ๋ด๋ณด๋ด๊ธฐ๋ฅผ ์ฐธ์กฐํ๋ ์ฆ์ ๋งค์ฐ ํผ๋์ค๋ฌ์์ก์ต๋๋ค.
์์ ์ ๊ธฐ๋ณธ ์ค์ ํ์ด์ง ๊ตฌ์ฑ ์์ ๋ด๋ณด๋ด๊ธฐ๋ฅผ ์ ์ธํ๊ณ ํ์ด์ง์์ ๋ชจ๋ ๋ด๋ณด๋ด๊ธฐ๋ฅผ ์ ๊ฑฐํ๋ ๊ฒ์ ๋๋ค.
@thekevinbrown ๊ฐํ์ ์ธ ์ค๋ฅ๊ฐ ๋ฐ์
@ ๋ฌธ์ ๊ฐ์๋ ํ์ด์ง์์ ์์ํ๊ฑฐ๋ ์๋ก ๊ณ ์น ๋๋ง๋ค
๊ฐ๋ฅํ๋ค๋ฉด ๋ชจํธํ ๋ฐํ์ ์ค๋ฅ ๋์ ๋ช ํํ ๋น๋ ์ค๋ฅ๋ก ๋ ์ข์์ ๊ฒ์ ๋๋ค.
@thekevinbrown ๊ทธ๋์ ๋๋ ๋น์ ์ ๋ฌธ์ ๊ฐ์ด ๋ฌธ์ ์ ๊ด๋ จ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค (์๋ฌด๋ ์์ ์ ์ผ๋ก ์ฌํ ํ ์ ์์๋ ๊ฐํ์ ์ค๋ฅ). ๋์ผํ ์ค๋ฅ๊ฐ ํ์๋์ง๋ง ์์ธ์ด ๋ค๋ฆ ๋๋ค (๊ณ ๋ง๊ฒ๋ ๋น์ ์ ์ฝ๊ฒ ๊ณ ์ณค์ต๋๋ค).
prod ์ฌ์ดํธ์์์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ณ ์ต์ Gatsby ๋ฒ์ (2 ์ผ ์ ์ถ์)์ผ๋ก ์ ๊ทธ๋ ์ด๋ํ๋ฉด Safari์ ๋ฒ๊ทธ๊ฐ ์์ ๋์์ต๋๋ค.
์ต์ Gatsby ๋ฒ์ ์ผ๋ก ์ ๊ทธ๋ ์ด๋๋์์ต๋๋ค. ์ฌ์ ํ ๋ฌธ์ ๊ฐ ๋ฐ์ ํจ
๋๋ ์ ์ ์ด๊ฒ์ ๊ฒฝํ ํ ์ ์ด ์์ต๋๋ค. ๊ฐ์๊ธฐ ๋งค๋ฒ ๋ฐ์ํฉ๋๋ค. ํ๋ก๋์
์์๋ง ๐ข
์ด๊ฒ์ 20 ์๊ฐ ์ ์
๋ฐ์ดํธ ํ์ ๋ฐ์ํ์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ ๊ธฐ์ ์ผ๋ก ์ข
์์ฑ์ ์
๋ฐ์ดํธํฉ๋๋ค.
๊ทธ๋์ ๊ธฐ๋ณธ์ ์ผ๋ก ํ๋ก์ ํธ๋ ๋ค์ด๋์๊ณ ์ด๋ป๊ฒ ๋ค์ ์๋ ์ํฌ์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
์
๋ฐ์ดํธ๋ฅผ 20 ์๊ฐ ์ ์ผ๋ก ๋๋๋ฆฌ๋ ค ๊ณ ํ์ต๋๋ค. ๋์์ด๋์ง ์์์ต๋๋ค.
8 ์ผ ์ ์ผ๋ก ๋๋๋ ค๋ ๋์์ด๋์ง ์์์ต๋๋ค.
๋ค์์ ์๋ก์ด ์
๋ฐ์ดํธ๊ฐ ํฌํจ ๋ ํ๋ก์ ํธ์
๋๋ค : https://vermehrungch-4utm3ymcd.now.sh/Vermehrung/
๊ทธ๋ฆฌ๊ณ 8 ์ผ ์ ์ ๋ง์ง๋ง ์์
: https://vermehrungch-9l709pu84.now.sh/Vermehrung/
๊ฐ์ธ ๋น ์ข ์์ฑ์ 9 ์ผ ์ ์ ์ํ๋ก ๋ ๋๋ฆฌ๋ฉด ์๋ก์ด ๋น๋๊ฐ ๋ค์ ์๋ํฉ๋๋ค .๐
์ด์ gatsby ์ข ์์ฑ์ด ์์ธ์ ๋ถ๋ฆฌํ๋ ค๊ณ ์๋ํฉ๋๋ค.
์ข์, ์ฐ๋ฆฌ์ ๊ฒฝ์ฐ :
idb-keyval-iife.min.js:1 Uncaught (in promise) DOMException: Failed to execute 'transaction' on 'IDBDatabase': The database connection is closing.
at https://vermehrungch.gabriel-software.now.sh/idb-keyval-iife.min.js:1:353
at new Promise (<anonymous>)
at https://vermehrungch.gabriel-software.now.sh/idb-keyval-iife.min.js:1:323
at async Object.handle (https://vermehrungch.gabriel-software.now.sh/sw.js:162:21)
์ ๋ฐ์ดํธ : gatsby v2.21.19์์ ์ค๋ฅ๊ฐ ๊ณ์ ๋ฐ์ํฉ๋๋ค.
@barbalex ์ฌ์ดํธ๋ฅผ ์ ํฌ์ ๊ณต์ ํด ์ฃผ์๊ฒ ์ต๋๊น? ๋น๊ณต๊ฐ ์ธ ๊ฒฝ์ฐ [email protected] ์ผ๋ก ์ด๋ฉ์ผ์ ๋ณด๋ด
๋๋ฒ๊ทธ ํ ๋ ์ฌ์ดํธ์์์ด ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
[].concat(function(e) {
if (Array.isArray(e)) {
for (var t = 0, n = Array(e.length); t < e.length; t++) n[t] = e[t];
return n
}
return Array.from(e)
}(Object.keys(it.propTypes)), ["children"]);
Stacktrace :
TypeError: Cannot convert undefined or null to object
at Function.keys (<anonymous>)
at Module.zJQU (VM54 component---src-pages-vermehrung-js-c3ca1cb1b4686475777d.js:13787)
at c (webpack-runtime-2b4bd8eda0563b1ea7e6.js:1)
์ฌ์ดํธ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ฌ์ดํธ๊ฐ ๊ฐ๋ฐ ์ค์ ๋๋ค. ๋ฐ๋ผ์ ๋ฐ์ดํฐ๋ฅผ ํธ์ง ํ ์๋ ์์ต๋๋ค.
Sentry์์ ๋ฐ๋ณต์ ์ผ๋ก ๋์ผํ ์ค๋ฅ ๋ฉ์์ง๋ฅผ ๋ฐ์์ต๋๋ค.
์ฐ๋ฆฌ๋ ๊ฐ์ธ ๋น ๋ฒ์ "2.21.22"๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ฌ ์์์ ์ธ๊ธ ํ v2.20.36์ผ๋ก ๋ค์ด ๊ทธ๋ ์ด๋ํ์ฌ ์์ ํ์ต๋๋ค.
์ข์, ์ฐ๋ฆฌ์ ๊ฒฝ์ฐ :
- ํ์คํ ๊ฐ์ธ ๋น ์์ฒด๊ฐ ์์ธ์ ๋๋ค
- 2.20.36๊น์ง ์๋ํ๋ ๋ฒ์
- v2.21.2 ๋ฐ v2.21.3์๋ ์์ ์ค๋ฅ๊ฐ ์์ต๋๋ค (v2.21.17 ์ด์ ์ ๋์ผํ ์ค๋ฅ๋ฅผ ํ ์คํธํ์ต๋๋ค).
2.21.12 ๋ฒ์ ์ด์๋ ๋ค๋ฅธ ํ๋ก์ ํธ์์์ด ๋ฌธ์ ๋ฅผ ๋ค์ ๋ง๋ฌ์ต๋๋ค. ์ด๊ฒ์ ํ๋ก๋์ ์์๋ง ๋ฐ์ํ๋ฏ๋ก _ ์ ๋ง _ ๋์๋ค. ์ด ๋ฒ๊ทธ์ ์ฐ์ ์์๋ฅผ ์ง์ ํ์ญ์์ค.
https://www.voteamerica.com/ ์์ ํ๋ก๋์ ์์ ์ด๊ฒ์๋ณด๊ณ
์ต๊ทผ์ ์ญ์ ๋ ํ ํ์ด์ง์ ๋ํด ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. https://intergiro.com/legal ์ ์์๋๋ก ์ฌ์ฉ์ ์ง์ 404 ํ์ด์ง๋ฅผ ํ์ํ์ง ์์ต๋๋ค (๋ฐ์คํฌํฑ Chrome, Gatsby 2.20.8). ํ๋ก๋์ ์์๋ง ๋ฐ์ํฉ๋๋ค.
์ ๊ฒฝ์ฐ์๋ @Kanuny ์ ์๊ฒฌ์ด ๋ด ๋ฌธ์ ๋ฅผ ๊ฐ์ ์ ์ผ๋ก ํด๊ฒฐํ์ต๋๋ค. publicLoader.loadPage
์์ ํ์ด์ง ๋ฐ์ดํฐ JSON์ ๊ฐ์ ธ ์ค๋ ค๊ณ ํ ๋ ์ค์๋ก ํ์ด์ง ๋ฐ์ดํฐ JSON์ HTML ํ์ผ๋ก ๋ฆฌ๋๋ ์
ํ์ต๋๋ค. ๋ฆฌ๋๋ ์
์ ์์ ํ ํ ํ์ด์ง ๋ฐ์ดํฐ JSON์ด ์ ๋๋ก๋ก๋๋๊ณ ๋ชจ๋ ์ ์์ ์ผ๋ก ์๋ํฉ๋๋ค.
๋ฒ๊ทธ๊ฐ ๊ฐ์๊ธฐ ๋ค์ ์ฌ๋ผ์ก์ต๋๋ค. ์บ์ ๋ ๋ฌด์ธ๊ฐ์ ๋งํฌ ๋ ๊ฒ ๊ฐ์ต๋๋ค.
Firefox ๋ฐ Chrome ์ต์ ๋ฒ์ ์ 2.22.12 ๋ฒ์ ์์๋ ์ค๋ฅ๊ฐ ๊ณ์ ๋ฐ์ํฉ๋๋ค.
๊ณ ์ณ์ฃผ์ธ์!
๊ณ ์ณ์ฃผ์ธ์!
@SoldierCorp ์คํ ์์ค๊ฐ ๋ฌด์์ธ์ง ์ฝ๊ณ ์ง์ ์์ ํด๋ณด์ญ์์ค.
@antoinerousseau ๋ ๋ํ ๋์์ด ํ์ํ ์ฌ๋์ด ๋์์ ์์ฒญํ๊ณ ๋ฐฉ๋ฒ์ ์๋ ์ฌ๋์ด ๋์์ ์ ๊ณตํ๋ ๊ณณ์์ ์๋ก ๋๋ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ ๊ทํ์ ์๊ฒฌ์ด ์ ์ ํ์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค.
@andrzejwp ์, "์ ๋ฐ ๊ณ ์ณ์ฃผ์ธ์!"์ ๊ฐ์
๋ค๋ฅธ ์ฌ๋๋ค์ ๊ธฐ์ฌ์๊ฐ ๊ทธ๋ค์ ๋๊ณ OSS ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ๋ฅผ ํฌ๋งํ๋ ๋ฐ ํ์ํ ์ํฅ์ ๋ํ ์์ธํ ํต์ฐฐ๋ ฅ์ ์ธ๊ธํ์ต๋๋ค.
@antoinerousseau ๋ฌธ์ ์์ ๋ ์ด์ ์ ๊ณต๋๋ ์ ๋ณด๊ฐ ์๊ธฐ ๋๋ฌธ์์ด ๋ฌธ์ ์ ๊ด๋ จ๋ ์ ์ฉํ ์ ๋ณด๊ฐ ๋ ์ด์ ์์ต๋๋ค. ๊ทธ๋์ ๊ทธ๋ฅ ๋ฐ์ํฉ๋๋ค. ์ต์ ๋ฒ์ .
๋ ๋ง์ ์ฌ๋๋ค์ด ์ฌ์ ํ ๋ฌธ์ ๋ฅผ ๊ฒช๊ณ ์์ผ๋ฉฐ ์์ง ํด๊ฒฐ๋์ง ์์๋ค๋ ๊ฒ์ Gatsby์๊ฒ ์๋ฆฌ๋ ๊ฒ์ ๋๋ค.
๊ทธ๊ฒ์ด ๋น์ ์ ๊ดด๋กญํ๋ ๊ฒฝ์ฐ ์ฃ์กํ์ง๋ง ํ๋ ์ ์ํฌ๋ฅผ ์ฌ์ฉํ๊ณ ํผ์์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์๊ฐ์ด์๋ ์ผ๋ฐ ์ฌ์ฉ์์ ๋๋ค.
์ ๊ฒฝ์ฐ์๋ gatsby-plugin-ipfs ( gatsby build --prefix-paths && gatsby serve
์คํํ๋ฉด "Error / page resources for / not found. Not rendering React"๊ฐ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ๊ฒฝ๋ก๋ฅผ ์ ๋์ฌ๋ก ์ง์ ํ ๋๋ง ๋ฐ์ํ์ต๋๋ค. ํ์ด์ง).
๊ทธ๋ฌ๋ index.jsx ํ์ด์ง์์ ํ์ด์ง ์ฟผ๋ฆฌ๋ฅผ ์คํํ์ง ์์์ง๋ง useStaticQuery ํํฌ์์ staticQuery๊ฐ ํฌํจ ๋ ๊ตฌ์ฑ ์์๊ฐ์์์ต๋๋ค.
์ด ๊ตฌ์ฑ ์์๋ฅผ ์ฃผ์ ์ฒ๋ฆฌํ๊ณ ๋ค์ ๋น๋ํ๋ฉด ์ค๋ฅ๊ฐ ์ฌ๋ผ์ง๋๋ค.
ํฅ๋ฏธ๋กญ๊ฒ๋์ด ๊ตฌ์ฑ ์์์ ์ฃผ์์ ํด์ ํ๊ณ ๋ค์ ๋น๋ํ๋ฉด (์ฌ์ดํธ๊ฐ ์ด๊ธฐ ์ํ๋ก ๋์ ๊ฐ) ์ ์์ ์ผ๋ก ์คํ๋๊ณ "Error / page resources for / not found. Not rendering React"์ค๋ฅ๊ฐ ๋ฐ์ํ์ง ์์ต๋๋ค. ๋น๋ ์บ์์ ์ค์ํ ๊ฒ์ด ํฌํจ๋์ด ์๋ค๊ณ ์ ์ํฉ๋๊น?
๊ทธ๋์ ์ด๊ฒ์ด ์ ๋ฐ์ํ ์ ์๋์ง์ ๋ํ ๋ด (๊ฑฐ์น) ์๊ฐ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
run static queries
๋๋ Generating image thumbnails
์ผ ์ ์์ต๋๋ค. ์ด๋ ์บ์๋ก ์ธํด ๊ฑด๋ ๋ธ ์์๋ ์ ์ผํ ๋จ๊ณ์ด๊ธฐ ๋๋ฌธ์
๋๋ค.์ค์๋ก ํ์ด์ง ๋ฐ์ดํฐ JSON์ HTML ํ์ผ๋ก ๋ฆฌ๋๋ ์ ํ์ต๋๋ค.
์ฌ๊ธฐ์ ๋น์ทํ ์ํฉ์ด ์์ต๋๋ค. ๋ณธ์ง์ ์ผ๋ก nginx location
์ง์์ด ์ ๊ท์์ /page-data/items/page-data.json
์ผ์นํ์ง ์์์ผ ํ ๋๋ ์ผ์นํ์ต๋๋ค. ์ ๊ท ํํ์์ ์์ ๋ถ๋ถ์ ^
๋ฅผ ์ถ๊ฐํ๋ฉด ์๋ํ์ง ์์ ์ผ์น๋ฅผ ํผํ ์ ์์ต๋๋ค.
https://www.voteamerica.com/ ์์ ํ๋ก๋์ ์์ ์ด๊ฒ์๋ณด๊ณ
๋ํ ๊ฐ์ ๋ฌธ์ ์ ์ง๋ฉดํ๊ณ ์์ต๋๋ค.
์๋
ํ์ธ์ ๊ฐ์ธ ๋น ํ, ์๋
ํ์ธ์. loadPage
์์ ๋ฐํ ๋ ์ค๋ฅ๋ฅผ ์ง์ ํ ์ ์์ต๋๊น?์ด ๋ฌธ์ ์์ ๋ฐ์ํ ๋ค์ํ ์ค๋ฅ์ ์์ธ์ด ๋ ์ ์์ต๋๊น?
ํจ์๋ฅผ ์ฐธ์กฐํ์ญ์์ค :
์ด ํจ์๋ app-data.json
, page-data.json
๋ฐ JS ๊ตฌ์ฑ ์์ ์์ฒด๋ฅผ๋ก๋ํ๋ ค๊ณ ์๋ํ๋ฏ๋ก ๋คํธ์ํฌ ๋ฌธ์ , ์๋ฒ ๊ตฌ์ฑ ๋ฌธ์ , ๊ฐ๋ฐ ๋ฌธ์ , ๊ตฌ์ฑ ๋ฌธ์ ์ ๋งค์ฐ ์ทจ์ฝํฉ๋๋ค. ์ค๋ฅ ๋ฉ์์ง๋ฅผ ์ง์ ํ๋ฉด ๊ทผ๋ณธ์ ์ธ ๋ฌธ์ ๋ฅผ ๋ ์ฝ๊ฒ ํด๊ฒฐํ ์ ์์ต๋๋ค.
(์ฐธ๊ณ : ์ ํฌ ์น ์ฌ์ดํธ์์ ๋ง์ง๋ง์ผ๋ก ๋ฐ์ํ ๋ฌธ์ ๋ ์ํ ๊ฐ์ ธ ์ค๊ธฐ ๋๋ฌธ์ด์์ต๋๋ค.)
v2.23.12๋ก ๋ค์ ์๋ํ์ต๋๋ค. ๋์ผํ ๊ฒฐ๊ณผ : https://vermehrungch-1j64x2olp.vercel.app/Vermehrung
2.20.36 ์ด์์ ๋ชจ๋ ๋ฒ์ ์ด ์๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ์๊ฒ ๊ทธ๊ฒ์ ์ ๋์ ์ผ๋ก ์ฒด๊ณ์ ์ผ๋ก ๋ณด์ ๋๋ค. gatsby๋ฅผ ์ฌ์ฉํ์ฌ ๋น๋ ๋ 5 ๊ฐ์ ์ฑ๋ง๋ค. ๊ทธ๋์ ์ฐ๋ฆฌ๋ ๊ทธ ์ดํ๋ก ์ ๋ฐ์ดํธ๊ฐ ์ฐจ๋จ๋์์ต๋๋ค.
๋ฌธ์ ๊ฐ๋๊ธฐ ์์ํ์ต๋๋ค. ์๋ฅผ ๋ค์ด v3 (https://github.com/gatsbyjs/gatsby/issues/15601)์์ core-js๋ฅผ ์ฌ์ฉํ๋ libs๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด ๋ฌธ์ ๋ ์ด์ ํด๊ฒฐ๋์์ต๋๋ค-์ ๊ทธ๋ ์ด๋ ํ ์ ์๋ค๋ฉด.
์ ๋ณด / ํ ์คํธ / ๋ฌด์์ด๋ ๋์ ์ค ์์๋ ๋ฐฉ๋ฒ์ด ์๋ค๋ฉด ๊ธฐ๊บผ์ด ํ ๊ฒ์ ๋๋ค.
@barbalex ์ฑ์ ๋ค์ ์ค๋ฅ๊ฐ ์์ต๋๋ค.
์ด ์ค๋ฅ๋ฅผ ๋ถ๋ช ํ ๋ณด์ฌ์ผํฉ๋๋ค. PR์ ์ถ๊ฐํด๋๋ฉ๋๋ค.์ด ATM์ ์ํ ํ ๋์ญํญ์ด ์ถฉ๋ถํ์ง ์์ต๋๋ค.
์ด ๋ฌธ์ ๋ lib๊ฐ ์๋ฒ ์ธก์์ ์ฌ์ฉ๋ ๋ react-contextmenu๋ก ์ธํด ๋ฐ์ํ๋ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค : https://github.com/vkbansal/react-contextmenu/issues/284 , ์ด๋ ๋น๋ ํ๋ก์ธ์ค ์ค์ ํธ๋ฆฌ๊ฑฐ๋๋ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค.
๋ฟก๋ฟก
PR์ ์ถ๊ฐํด๋๋ฉ๋๋ค.์ด ATM์ ์ํ ํ ๋์ญํญ์ด ์ถฉ๋ถํ์ง ์์ต๋๋ค.
์ฃ์กํฉ๋๋ค. ํ์ ์ธํฌ๊ฐ ์ถฉ๋ถํ์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค ๐ข
์๋ง๋ @ b4stien ์?
2.23.21 ๋ฒ์ ์์ ๋ฌธ์ ๊ฐ ๊ณ์ ๋ฐ์ํฉ๋๋ค.
๋๋ ์ด๊ฒ์ ๋ํ ๋ชจ๋ ํด๊ฒฐ์ฑ ์ ์ป์ง ๋ชปํ์ง๋ง ์ค๋ ์์นจ์ ์ฒ์ ์ผ๋ก์ด ๋ฌธ์ ๊ฐ ์์์ ์๋ฆฌ๊ณ ์ถ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋๋ ๊ทธ๊ฒ์ "๊ณ ์น "์ ์์๋ค.
์ด ์ฌ์ดํธ๋ "Cloudways"๋ผ๋ ๊ณต๊ธ์๋ฅผ ํตํด AWS์์ ํธ์คํ ๋ฉ๋๋ค.
์ด๊ธฐ ํ ์คํธ๋ก Netlify์ ์ฌ์ดํธ๋ฅผ ๋ฐฐํฌํ์ต๋๋ค. ๋ชจ๋ ๊ฒ์ด ์ ์๋ํ์ต๋๋ค.
์ฝ๊ฐ ํํค์ณ ๋ณธ ํ "Varnish"๋ผ๋ ๊ฒ์ ์ฌ์ฉํ๋ ์๋ฒ ์ธก ์บ์ ๋ฌธ์ ๊ฐ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋จผ์ "์ ๊ฑฐ"ํ๋ ค๊ณ ํ์ง๋ง ์๋ฌด ์ผ๋ ์ผ์ด๋์ง ์์์ต๋๋ค.ํ์ง๋ง ๋นํ์ฑํํ๋ค๊ฐ ๋ค์ ํ์ฑํํ๋ฉด ํจ๊ณผ๊ฐ์์์ต๋๋ค.
์ด ์ฌ์ดํธ๋ ์ ๊ธฐ์ ์ธ ์ ๋ฐ์ดํธ๋ฅผ ํตํด์ด ํ๊ฒฝ์์ ์ฝ 18 ๊ฐ์ ๋์ ์ ์กด์ฌํ์ผ๋ฉฐ,์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒ์ ์ด๋ฒ์ด ์ฒ์์ด์์ต๋๋ค.
์ต๊ทผ์ ๋ค์์ผ๋ก ์
๊ทธ๋ ์ด๋ํ์ต๋๋ค.
Gatsby CLI ๋ฒ์ : 2.12.59
์ด๊ฒ์ด ์ด๋ค ์ํฅ์ ๋ฏธ์น ์ ์์๋์ง ํ์คํ์ง ์์ง๋ง ๋ด๊ฐ ์๊ฐํ ์์๋ ์ ์ผํ ๋ณํ์ ๋๋ค. ๋ฌผ๋ก ํธ์คํ ์ธก๋ฉด์ ๋ณํ๊ฐ ์๋ค๋ฉด.
๋ฐ๋ผ๊ฑด๋ ์ด๊ฒ์ ๋๊ตฐ๊ฐ์๊ฒ ๋์์ด๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค ๐คท
"๊ดํ"์บ์๋ฅผ ๋ค์ ํ์ฑํํ์ ๋ 5 ๋ถ ์ด๋ด์ ๋ฌธ์ ๊ฐ ๋ค์ ๋ฐ์ํ์ต๋๋ค.
์ง๊ธ์์ด ๊ธฐ๋ฅ์ ๋นํ์ฑํํ์ต๋๋ค.
์ฐ๋ฆฌ์ ๊ฒฝ์ฐ /pages
ํด๋์์ ์์ฑ ๋ ๋ชจ๋ ํ์ด์ง๋ ์๋ํ์ง๋ง createPages
์์ฑ ๋ ๋๋จธ์ง ํ์ด์ง๋ ๋ฐ์ํ์ง ์์ต๋๋ค.
์ด ๋ฌธ์ ๋ ์ง์ญ ๋ฐ CI ๋ชจ๋์์ ๋ฐ์ํฉ๋๋ค.
์ฐ๋ฆฌ์ ๊ฒฝ์ฐ createPages
์์ฑ ๋ ๋ชจ๋ ํ์ด์ง๋ ๋ชจ๋ ํ์ด์ง์์ /${locale}/
์ ๋์ฌ๋ฅผ ์ฌ์ฉํ์ฌ ๊ตญ์ ํ๋ฅผ ์ฌ์ฉํ๊ณ ์๊ธฐ ๋๋ฌธ์
๋๋ค.
์ฐ๋ฆฌ์ ๊ฒฝ์ฐ
createPages
์์ฑ ๋ ๋ชจ๋ ํ์ด์ง๋ ๋ชจ๋ ํ์ด์ง์์/${locale}/
์ ๋์ฌ๋ฅผ ์ฌ์ฉํ์ฌ ๊ตญ์ ํ๋ฅผ ์ฌ์ฉํ๊ณ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ด๊ฒ์ ๋ํ ํด๊ฒฐ์ฑ ์ ์ฐพ์์ต๋๊น? ์ฐ๋ฆฌ๋ ๋ํ ๋ง์ ๋ก์ผ์ผ๋ก์ด ์ค์ ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
@kdichev ์๋์ ํด๊ฒฐ์ฑ ์ ์ฐพ์ง ๋ชปํ์ต๋๋ค. gatsby ํ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ค์์์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ต๋๋ค.
๋๋ ์ฌ์ ํ ๋ฌธ์ ๊ฐ ์ด๋์ ์๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๊ธฐ๊บผ์ด PR์ ๋ง๋ค ๊ฒ ์ง๋ง ๊ทผ๋ณธ์ ์ธ ๋ฌธ์ ๊ฐ ์ด๋์ ์๋์ง ์ฐพ์ ๋ด๋ฉด ์ข์๊น์?
์๋
ํ์ธ์, ์ ๋ IE11์ ์ฌ์ฉํ๋ ํ๋ก๋์
์์์ด ๋ฌธ์ ์ ์ง๋ฉดํ๊ณ ์์ต๋๋ค.
"gatsby": "^ 2.23.11"
๋ํ IE11์ ๋ชจ๋ ํ์ด์ง์์ ๊ณต๋ฐฑ (์ํ ์์) ๊ฒฐ๊ณผ๊ฐ ํ์๋ฉ๋๋ค.
ํ์ด์ง ๋ฆฌ์์ค๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค. ๋ฐ์์ ๋ ๋๋งํ์ง ์์
๊ฐ์ธ ๋น v2.24.2
ํธ์ง : ์ด์ ๊ธฐ๋ฅ ๋ฒ์ v2.22.11๋ก ๋๋ ๋ ธ์ต๋๋ค. ie11์ ํด๋น ์ปค๋ฐ์์ ์๋ํ์ผ๋ฉฐ ์ง๊ธ๋ ์๋ํ์ง๋ง package-lock.json ๋ฐ npm ci๋ฅผ ์ ์งํ ๋๋ง ์๋ํ์ต๋๋ค. ์ด๋ป๊ฒ ๋ ์ด๊ฒ์ด ์๋ชป๋์๋ค๊ณ ์๊ฐํ์ง ์์ผ๋ฏ๋ก ๊ด๋ จ ๋ ์์๋ ๊ฐ๋ฅํ ๋ค์ด ์คํธ๋ฆผ ๋ณ๊ฒฝ ์ฌํญ์ ๋์ดํ๊ณ ์์ต๋๋ค.
(์๋ํ๋ ๋ฒ์ -> ์คํจํ ๋น๋ ๋ฒ์ )
ie11 ์คํจ์ ํ๋ณด๊ฐ ๋ ๊ฐ๋ฅ์ฑ์ด ํฐ ๊ฒ :
@ babel / core 7.10.0-> 7.10.5
@ core / js 2.6.11-> 3.6.5
gatsby-legacy-polyfills ์๋ก์ด dep 0.0.2
๊ธฐํ ๋ ๊ฐ๋ฅ์ฑ :
@ graphql-tools / schema ์๋ก์ด dep 6.0.14
@ graphql-tools / utils ์๋ก์ด dep 6.0.14
๊ทธ๋ฐ ๋ค์ vscode diff ๋๊ตฌ์์ ๋ชจ๋ ๋นจ๊ฐ-> ๋ชจ๋ ๋
น์์ ์ ๋ณํ๋ ์ธ๋ด์ฌ์ด ๋จ์ด์ก์ต๋๋ค.
๊ธฐํ ์ฐธ๊ณ ์ฌํญ : gatsby build && gatsby serve -H 0.0.0.0 ์ค๋ฅ๋ฅผ ์ฌํํ์ฌ ์๋ฒ ํ๊ฒฝ ๊ด๋ จ ํญ๋ชฉ์ ๋ฐฐ์ ํ์ต๋๋ค.
ํธ์ง 2 : ๋ด ๊ฒ์๋ฌผ์์ ์ฒ์๋ณด๊ณ ๋ fauly v2.24.2 ๋น๋์ ๋น๋ ์ถ๋ ฅ์ด 10mb์์ 30mb๋ก ๋ณ๊ฒฝ๋์์ต๋๋ค. ์ฝ 20 ๊ฐ์ app- {hash} .js ๋ฒ์ , 2 ๊ฐ์ commons- {hash} .js ๋ฐ ๋ค์ํ ์์ pages.js๊ฐ ์์ต๋๋ค. ๋์ผํ ํ์ผ์ด ์๋ ๊ฒ์ผ๋ก ๋ณด์ด๋ฉฐ ์ด์ ๋น๋์ ์ผ์นํ๋๋ก ๋ ์ง๊ฐ ์ง์ ๋์์ต๋๋ค. ๋ฐ๋ผ์ gatsby ๋น๋๊ฐ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ชจ๋ ์ด์ ๋ฒ์ ์ ํ๋ณดํ๊ณ / public์ ๋ฃ์ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค.
๋๊ตฌ๋ ์ง ์ ์ฅ์๋ฅผ ๊ณต์ ํ ์ ์์ต๋๊น?
@roffelsaurus 2.23.22 ๋ฅผ ์ฌ์ฉํด ๋ณผ ์ ์์ต๋๊น?
2.24.2๋ ci / cd cypress ํ
์คํธ์์ ์คํจํฉ๋๋ค.
๋๊ตฌ๋ ์ง ์ ์ฅ์๋ฅผ ๊ณต์ ํ ์ ์์ต๋๊น?
์ฐ๋ฆฌ๋ repo์ vars๋ฅผ ๊ฐ์ธ์ ์ผ๋ก ๊ณต์ ํ ์ ์์ต๋๋ค. ๊ด์ฐฎ๋ค๋ฉด konstantin์ผ๋ก ์ด๋ฉ์ผ์ ๋ณด๋ด์ฃผ์ธ์. [email protected] ๊ทธ๋ฆฌ๊ณ ๋๋ ์ฐ๋ฆฌ์ gh์ ๋น์ ์ ์ด๋ ํ ๊ฒ์ ๋๋ค
@wardpeet ๋ฌธ์ # 25766๊ณผ ๊ด๋ จ๋ ์ก์ธ์ค ๊ถํ์ ๋ถ์ฌํ ์ ์ฅ์์์์ด ๋ฌธ์ ๋ฅผ ํ ์คํธ ํ ์ ์์ต๋๋ค.
์ ๊ฒฝ์ฐ ๋ฌธ์ ๋ import
์ฃผ๋ฌธ ๋ฐ ์ผ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ (์ฆ, react-leaflet
)๊ฐ ์๋ฒ ์ธก ๋ ๋๋ง ํ๊ฒฝ์์ ์ฒ๋ฆฌ๋๋ ๋ฐฉ์๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค. ๋์ค์ ๋ฌธ์ ๋ฅผ ์ผ์ผํค๋ ์ ๋จ์ง ์์ฒด๋ณด๋ค ๋จผ์ ์ ๋จ์ง ํ๋ฌ๊ทธ์ธ์ ๊ฐ์ ธ ์์ต๋๋ค. ์ด๋๋ฅผ๋ณด์์ผํ ์ง ์์์ ๋ ๋น ๋ฅด๊ฒ ๊ณ ์น ์์์์ต๋๋ค.
๊ทธ๋ฌ๋ ์์ฑ ๋ ์ค๋ฅ ๋ฉ์์ง ( page resources for / not found. Not rendering React
)๊ฐ ์์ฒญ๋๊ฒ ํผ๋์ค๋ฝ๊ณ ์ธ๋ถ ์ ๋ณด ๋ถ์กฑ ๋ฐ ๊ธฐํ ์ค๋ฅ๊ฐ ๊ทธ๊ฒ์ด ์๋ฏธํ๋ ๋ฐ๋ฅผ ๊น์ด ํํค์ณ ์ผํ๊ธฐ ๋๋ฌธ์ ์ฃผ์ ๋ฌธ์ ๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ด ๋ฌธ์ ๊ฐ์๋ ๋ค๋ฅธ ์ฌ๋์๊ฒ : ์ด๋ป๊ฒ ์ฐพ์์ต๋๊น? ํฌ๋กฌ์์ ์ข์ ์ค๋๋ ์ค๋จ ์ ๋ฐ ๋๋ฒ๊น
. gatsby build && gatsby serve
์์๋ ๋ชจ๋ ์์ค ๋งต์ด์๋ ํ๋ก๋์
ํ๊ฒฝ์ ๋ก์ปฌ์์ ๋ณผ ์ ์์ต๋๋ค. ๋๋ ์ด๋ค ์ฒญํฌ๋ฅผ ๋๋ฒ๊น
ํ ์ ์์๊ณ ๊ตฌ์ฑ ์์๊ฐ๋ก๋๋์ง ์๊ณ ๋ด๋ถ ๊ฐ์ ธ ์ค๊ธฐ๋ฅผ ์๋ง์ผ๋ก ๋ง๋ค์์ต๋๋ค. ๋ค์ ๋๋ฆฐ ํ๋ก์ธ์ค ์์ผ๋ฏ๋ก ํ์ด์ง๋ฅผ ๊ณ์ํด์ ๋ค์๋ก๋ ํ ๊ฒ์ด๋ฏ๋ก ์ธ๋ด์ฌ์ ๊ฐ์ง์ญ์์ค. ์ฒญํฌ ์ด๋ฆ (์ ๊ฒฝ์ฐ์๋ component---src-pages-index-js
)๊ณผ ํ ๋น ๋ ๊ฐ์ ธ ์ค๊ธฐ๋ฅผ ์ฐพ์ต๋๋ค. ๊ทธ๊ฒ์ ๋ค์ด๊ฐ์ ๊ทธ๋ค ์ค ํ๋๊ฐ ์คํจ ํ ๊ฒ์ด๋ฏ๋ก ์ข
์์ฑ์ ๊ด์ฐฐํ์ญ์์ค. ๋๋ ๊ฐ ๊ฒฝ์ฐ๋ง๋ค ๋ค๋ฅผ ๊ฒ์ด๋ผ๊ณ ๋ฏฟ๊ธฐ ๋๋ฌธ์ ์ด๋ ๊ณณ์์๋ ์ข์ ํด๊ฒฐ์ฑ
์ ์ฐพ์ ์ ์์ต๋๋ค. ์์ค ๋งต์ ๋ฐฐ์ด์์ ์ผ๋ จ์ ์ผ๋ฐ์ ์ธ ์ฝ์ ์ด์์ ๋ณด์ฌ ์ฃผ์๊ธฐ ๋๋ฌธ์ ์ ์ฉํ์ต๋๋ค.
์ด๊ฒ์ ์ฃผ์ ์ ํต์ฌ์ ์๋์ง๋ง ์๋์์ ์ฐพ์ ๋ด์ฉ์ ๋ํ ์ธ๋ถ ์ ๋ณด๋ฅผ ๋จ๊ธธ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ์๋๋ ๋ฆฌ ์กํธ ๋ฆฌํ๋ฆฟ์๋ง ํด๋น ๋๋ฉฐ ๋ง์ผ๋ฆฌ์ง๋ ๋ค๋ฅผ ์ ์์ต๋๋ค.
๊ทธ๋์ ์ด๊ฒ์ ์๋ ๋ฐฉ๋ฒ์ ๋๋ค.
import { Map, Marker, Popup, TileLayer } from 'react-leaflet'
import "leaflet-control-geocoder/dist/Control.Geocoder"
import L from "leaflet";
๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ด ์ง๊ธ ๋ณด์ด๋ ๋ชจ์ต์ ๋๋ค :
import { Map, Marker, Popup, TileLayer } from 'react-leaflet'
import L from "leaflet";
import "leaflet-control-geocoder/dist/Control.Geocoder"
๋ฌผ๋ก ๋ชจ๋ ํ๋ฌ๊ทธ์ธ์ ์ผ๋ฐ์ ์ผ๋ก ํ๋ฌ๊ทธ์ธ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ค์์ ์์ผํ๋ฏ๋ก ์ด๋ ์ค๋ฅ์
๋๋ค. react-leaflet
(๋ด ์๊ฐ์) ๋๋ฒ๊ทธ๋ฅผ ์คํํ ๋ ๋ก๋ฉ ์์๊ฐ ์ฝ๊ฐ ๋ณ๊ฒฝ๋์์ผ๋ฏ๋ก ๊ฐ๋ฐ ์ค์ ๋ฌธ์ ๊ฐ ๋ณด์ด์ง ์์์ต๋๋ค.
๋ฐฉ๊ธ ๋ด ์ฑ์์ Uncaught (in promise) Error: page resources for /app/ not found. Not rendering React
์ ๋๋ฒ๊น
ํ์ต๋๋ค. ์ ๊ฒฝ์ฐ์๋ / app /์ ๋ฐ์ ์ฑ์ ํฌํจํ๋ ํด๋ผ์ด์ธํธ ์ ์ฉ ๊ฒฝ๋ก์
๋๋ค. gatsby develop
์๋ ๋ฌธ์ ๊ฐ ์์์ง๋ง gatsby serve
๋ฐ ํ๋ก๋์
๋น๋๋ฅผ ์คํํ ๋์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค. ๋ณด๊ณ ๋ ๋น๋ ์ค๋ฅ๊ฐ ์์ต๋๋ค.
๋ฌธ์ ๋ @barbalex๋ ๋ง๋ react-contextmenu (https://github.com/vkbansal/react-contextmenu/issues/284)์์ ๋ฐ์
@rgembalik , ๋ด๊ฐ ์ด๊ฒ์ ๋๋ฒ๊น ํ ๋ฐฉ๋ฒ์ ๋ด ์ฑ ๊ตฌ์ฑ ์์์์ ๋ชจ๋ ๊ตฌ์ฑ ์์๋ฅผ ์ ๊ฑฐํ ๋ค์ ๋น๋๋ฅผ ์ค๋จํ๋ ๊ตฌ์ฑ ์์๋ฅผ ์ฐพ์ ๋๊น์ง ํ ๋ฒ์ ํ๋์ฉ ๋ค์ ์ถ๊ฐํ๋ ๊ฒ์ ๋๋ค.
๋๋ฅผ ์ํด ๋๋ ๋ณต์ ์กฐ์ฐจ ํ ์ ์์ผ๋ฉฐ, ์ผํธ๋ฆฌ ์ค๋ฅ๋ณด๊ณ ์์ ๋ง์ ์ค๋ฅ๋ฅผ ๋ณผ ์ ์์ต๋๋ค. ๊ทธ๋์ ๋ด๊ฐ ์ด๋ป๊ฒ ์์๋ผ ์ง ๋ชจ๋ฅด๊ฒ ๋ค
Sentry์์๋ "/"์ด์ธ์ ๋ชจ๋ ์ข ๋ฅ์ ํ์ด์ง์ ๋ํด์๋ ๋ณต์ ํ ์์๋ ์ค๋ฅ์ ํจ๊ป ์ด๋ฌํ ์ค๋ฅ๋ฅผ Sentry์์ ๋ง์ด ์ป๊ณ ์์ต๋๋ค. Netlify์์ ํธ์คํ ๋ฉ๋๋ค. ๋ฐฐํฌํ๋ ๋์ ํ์ฑ ์ธ์ ๊ณผ ๊ด๋ จ์ด์์ ์ ์์ง๋ง ํ์ธํ๊ธฐ๋ ์ด๋ ต์ต๋๋ค.
@wardpeet ์์ด ๋์ผํ ์ค๋ฅ๋ฅผ ์ ๋ฐํ๋ ์ฌ๋ฌ ๊ฐ์ง ์ ์ฌ์ ์์ธ์ด์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ฐ๋ฆฌ๋ Sentry ๋ก๊ทธ์์๋ง ์ด๋ฌํ ์ค๋ฅ๋ฅผ ๋ณผ ์ ์์ผ๋ฉฐ ์ฌํ ํ ์ ์์์ต๋๋ค. ์ค๋ฅ์ ํจ๊ป ๋ ๋ง์ ์ ๋ณด๋ฅผ ํฌํจํ๊ฑฐ๋ ๋ ์ธ๋ถํ ๋ ์ฌ๋ฌ ์ค๋ฅ๋ฅผ ์ถ๊ฐํ์ฌ ์ฐ๋ฆฌ ๋ชจ๋๊ฐ ์์ธ์ ์ฐพ๊ธฐ ์ํด ๋ ๋ง์ ์ผ์ ํ ์ ์๋๋ก ํ ์ ์์ต๋๊น?
https://www.gatsbyjs.com/ ์์์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ์ฌ ๋น ํ์ด์ง๊ฐ ํ์๋ฉ๋๋ค.
์ฒ์ ํ์ด์ง๋ฅผ๋ก๋ ํ ๋ gatsbyjs.com์์์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ์์ ํ์ธํ ์ ์์ต๋๋ค.
๋๋ Gatsby๊ฐ ํํ ์ฌ๋์๋ก URL ๊ฒฝ๋ก๋ฅผ ์ฒ๋ฆฌํ๋ ํน๋ณํ ๋ฐฉ๋ฒ์ ๊ฐ์ง๊ณ ์์์ ์์ ๋์ต๋๋ค. ์ด๊ฒ์ด ๋์์ด ๋ ์ ์์์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
์ด ๋ฌธ์ ๋ ์์ต๋๋ค.
์ ์ฅ์๋ฅผ ๊ณต์ ํ ์ ์์ง๋ง ์ด ํ์ด์ง์ ์ก์ธ์คํ๋ฉด SVG๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ๋ก๋๋๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค. ํ์ง๋ง ์กด์ฌํ์ง ์๋ ๊ฒฝ๋ก (์ : https://rocketseat.com.br/test)๋ก ์ด๋ ํ๋ฉด ์ค๋๋ ๋ฒ์ ์ ์ฝ๋ (SVG ๋์ gatsby-image
์ฌ์ฉ)๊ฐ ํ์๋๊ณ ์ฝ์์์ด ๋ฉ์์ง :
Error: page resources for /test not found. Not rendering React
[email protected]์ ์ฌ์ฉ
_ ํธ์ง : ์ด์ ๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง ์ฌ๊ธฐ์ ๋ด ๋ฌธ์ ๋ฅผ ์ถ๊ฐ ํ ํ ์ด๋ฏธ์ง ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ง๋ง ํ์ด์ง ์ฝ์์์ ๋์ผํ ์ค๋ฅ๊ฐ ๊ณ์ ๋ฐ์ํฉ๋๋ค _
๋ณต์ ํ๊ธฐ๊ฐ ์ด๋ ต์ต๋๋ค. ์ผํธ๋ฆฌ ์ค๋ฅ๋ณด๊ณ ์ ์ด๋ฌํ ์ค๋ฅ๊ฐ ๋ง์ด ํ์๋ฉ๋๋ค.
@theskillwithin- ๋์ผํฉ๋๋ค. ์ผํธ๋ฆฌ์์๋ ์์ฒ ๊ฐ.
๋๋ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์์ฃผ ์ด์ํ. ์ด ์ค๋ฅ๋ฅผ ์ ๋ฐํ๋ ๋ค์ํ ์์ธ์ด์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ํ์ด ์ค๋ฅ๋ ๋ค์ํ ๋ธ๋ผ์ฐ์ ์ ๋ค์ํ ํ์ด์ง์์ ๋ฐ์ํฉ๋๋ค. ์์ ์ธ๊ธ ํ ๊ฐ๋ฅํ ์์ธ ์ค ์ด๋ค ๊ฒ๊ณผ๋ ์ฐ๋ฆฌ์ ์ํฉ์ ์ฐ๊ด์ํฌ ์์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ํ ๊ฐ๋ฐ ๊ณผ์ ์์ ๋ณต์ ํ ์์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ฐฐํฌ ๋ ์น ์ฌ์ดํธ์์๋ง ๋ฐ์ํฉ๋๋ค.
๋๋ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๋ณต์ ํ ์ ์์ง๋ง ์ผํธ๋ฆฌ์ ์ด๋ฌํ ์ค๋ฅ๊ฐ ๋ง์ต๋๋ค. ๋ํ ๋ค์ํ ๋ธ๋ผ์ฐ์
๊ฐ์ธ ๋น ๋ฒ์ 2.24.3
์ด๊ฒ๋ค์ ๋ด๊ฐ Sentry๋ฅผ ์ฌ์ฉํ๊ณ ์๋ ํ๋ก๋์
์ฌ์ดํธ์์๋ ์์ฃผ๋ณด๊ณ ๋๊ณ ์์ต๋๋ค. ์์ ์ ๋ณต์ ํ ์ ์์ต๋๋ค. ๋ด๊ฐ ๋ณด๋ ๋ฐฉ์์ ๋ ๋์๋ณด๊ณ ๊ฐ ํ์ํ๋ค๋ ๊ฒ์
๋๋ค. ๊ธฐ์ด ํ ์ ์ ์ค์ ๋ก ํ์ด์ง ๋ฐ์ดํฐ๋ฅผ ์ฐพ๋๋ค๋ ๊ฒ์
๋๋ค.
200 ์ํ์ AFAICT๋ฅผ ์์ ํ๊ณ ์์ผ๋ฏ๋ก json์ด ์๋ชป๋ ํ์์ด ์๋๋ฏ๋ก fetchPageDataJson()
๊ฐ ์ฑ๊ณต ์๋ต์ ๋ฐํํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
https://github.com/gatsbyjs/gatsby/blob/90e66c7fcdc7a75185bdaa336b0f9bdec9762585/packages/gatsby/cache-dir/loader.js#L137 -L151
์ด ์ ๋๋ฉด ์ฑ๊ณตํ ๊ฒ ๊ฐ์ผ๋ฏ๋ก ๋ค์์ผ๋ก ๋ณผ ์์๋ ์คํจ ์ง์ ์ ๊ตฌ์ฑ ์์ ์์ฒด๋ฅผ๋ก๋ํ๋ ๊ฒ์
๋๋ค.
https://github.com/gatsbyjs/gatsby/blob/90e66c7fcdc7a75185bdaa336b0f9bdec9762585/packages/gatsby/cache-dir/loader.js#L438 -L448
https://github.com/gatsbyjs/gatsby/blob/90e66c7fcdc7a75185bdaa336b0f9bdec9762585/packages/gatsby/cache-dir/loader.js#L235 -L241
์์ฑ์ค์ธ async-requires
์ ๋ฌธ์ ๊ฐ์์ ์ ์์ต๋๋ค. Webpack์์ ์ฒ๋ฆฌํ๊ณ ๋ฌธ์ ๊ฐ ๊ฐํ์ ์ผ๋ก ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ์ค์ ๋ก ๊ด์ฐฎ๋ค๊ณ ์๊ฐํฉ๋๋ค. ํ์ผ์ด ์์ฑ๋๋ ๋ฐฉ์์ ๋ฌธ์ ๊ฐ ์์ผ๋ฉด ๋น๋๊ฐ ํญํ ๋ ์ ์์ต๋๋ค.
์ด๊ฒ์ด ๋ฐ์ ๋๋ ๋ชจ๋์ ์ด๋๊ฐ์์ ์ผ์ข ์ ๊ตฌ๋ฌธ ๋ฌธ์ ์๋ค๋ฉด 100 % ์คํจ ํ ๊ฒ์ด๋ผ๊ณ ์์ํฉ๋๋ค. ํด๋น ๋ชจ๋์๋ก๋ํ๋ ์ฅ์น / ๋ธ๋ผ์ฐ์ ์ ํธํ๋์ง ์๋ ๋ชจ๋์์ ์ฌ์ฉ์ค์ธ ๊ฒ์ด์์ ์ ์์ต๋๋ค. ํน์ ์ค๋ฅ๊ฐ ๋ชจํธ ํด์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ํ์คํ ๋งํ๊ธฐ๋ ์ด๋ ต์ต๋๋ค.
๋ด๊ฐ ํ์ํ๋ค๊ณ ์๊ฐํ๋ ๊ฒ์ ์์ฑ ๋ ์ค๋ฅ๋ฅผ ๋จน์ง ์๋ ์ปดํฌ๋ํธ ๋ก๋์ ๋๋ค.
๊ฐ๋ Promise.resolve()
๋ฉ์ด๋ฆฌ๊ฐ ์กด์ฌํ์ง ์๋์ด ๋ asyncRequires
์ค๋ฅ๊ฐ ๋์ ๋์ ธ ์๋ฏธํฉ๋๋ค. ๊ทธ ์ค๋ฅ๋ ํด๋น ํ์ด์ง๋ฅผ ๋ฐฉ๋ฌธ ํ ๋๋ง๋ค ๋ฐ์ํ๋ฏ๋ก ์์ธ์ ์ฝ๊ฒ ์ถ์ ํ ์ ์์ต๋๋ค.
catch ๋ธ๋ก์์ null
๋ฅผ ๋ฐํํ๋ฉด ๋ฐ์ํ ์ค๋ฅ๊ฐ ์๋ฏธ๊ฐ ์์์ ์๋ฏธํฉ๋๋ค. ๋ชจ๋์ ์ฐพ์์ง๋ง ๋์ ๊ฐ์ ธ ์ค๊ธฐ ์ค์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค. ์นํฉ์ด ๋์ ๊ฐ์ ธ ์ค๊ธฐ์ catch()
๋ธ๋ก์์ ์ค๋ฅ๋ฅผ ๋ฐํํ์ง ์์ต๋๊น? ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ Webpack์ผ๋ก ํด๊ฒฐํด์ผ ํ ๋ฌธ์ ์ผ ์ ์์ต๋๋ค. devtools์์ ์๋ชป๋ import()
๋ฅผ ์คํํ๋ฉด ์ค๋ฅ๊ฐ๋ณด๊ณ ๋๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ๊ฐ์ ธ ์ค๋ ์๋ฐ ์คํฌ๋ฆฝํธ๋ฅผ ๊ตฌ๋ฌธ ๋ถ์ ํ ์ ์์ / ์คํจ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ค๋ฅ๊ฐ๋ณด๊ณ ๋๋์ง ์ฌ๋ถ๋ ๋ ๋ค๋ฅธ ์ง๋ฌธ์ด๋ฉฐ ์ผ๋ถ ์ฝ๋๋ฅผ ์ฌ์ฉํ ์ถ๊ฐ ํ
์คํธ๋ ํน์ ๋ธ๋ผ์ฐ์ ์์ ์๋ํ์ง ์์ต๋๋ค.
@wardpeet ์ด์ ์ ๋ ๋์ ์ค๋ฅ๋ณด๊ณ ๋ฅผ ์ธ๊ธํ์ต๋๋ค. ๊ทธ๊ฒ์ด ์์ ์ค์ ๋๊น, ์๋๋ฉด ๋์์ด ํ์ํฉ๋๊น?
๋ธ๋ผ์ฐ์ ํธํ์ฑ๊ณผ ๊ด๋ จํ์ฌ ์ด๋ฌํ ์ค๋ฅ๋ ๋๋ถ๋ถ ๋ชจ๋ฐ์ผ ์ฅ์น์์ ์์ฑ๋ฉ๋๋ค.
๊ฐ์ฅ ์ต๊ทผ | Android์์ ํฌ๋กฌ ํฌํจ |
! [์ด๋ฏธ์ง] (https://user-images.githubusercontent.com/1935258/90704484-4f97ac80-e22c-11ea-8d53-505c93f32953.png) | ! [์ด๋ฏธ์ง] (https://user-images.githubusercontent.com/1935258/90704528-70f89880-e22c-11ea-907f-9f8c6fb61818.png) |
๊ทธ๋ฌ๋ Safari๋ฅผ ์ฌ์ฉํ๋ MacOS X์ โโChrome์ ์ฌ์ฉํ๋ Windows 10์์๋ ์ด๋ฌํ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ๊ฒ์ ๋ณด์์ต๋๋ค.
! [์ด๋ฏธ์ง] (https://user-images.githubusercontent.com/1935258/90705120-e0bb5300-e22d-11ea-9f3e-31ba064cbdd8.png) | ! [์ด๋ฏธ์ง] (https://user-images.githubusercontent.com/1935258/90705144-efa20580-e22d-11ea-965a-e036612a8f70.png) |
ํ ๊ฐ์ง ๊ณตํต์ ์ ํธ๋ํฝ์ด ์ผ๋ฐ์ ์ผ๋ก Facebook ๋๋ Google์์ ๋ฐ์ํ๋ ๊ฒ์ผ๋ก ๋ณด์ธ๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ์ฐ์ฐ ์ผ ์ ์์ต๋๋ค. ์๋ํ๋ฉด ๊ทธ๊ฒ๋ค์ด ์ฐ๋ฆฌ ํธ๋ํฝ์ ๋๋ถ๋ถ์ ์ด๋ ๊ธฐ ๋๋ฌธ์ ๋๋ค.
_ ์ฐธ๊ณ : ์ ๊ฐ ํจ๊ป ์ผํ๊ณ ์๋์ด ์ฌ์ดํธ๋ ์ค์ ๋ก [email protected]
ํ๊ณ ์์ผ๋ฏ๋ก ๋งํฌ ํ ์ฝ๋๋ ๋ค๋ฅธ ์์น์ ์์ง๋ง ๋ก์ง ์์ฒด๋ ๋ณ๊ฒฝ๋์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค. ์ฌ์ ํ ๋๊ฐ์ ์ผ์ํ๊ณ ์๊ณ , ์ ๊ฐ ํ์ธํ ์ ์ฌ์ ์ธ ์คํจ ์ง์ ์ ๋๊ฐ์ ๊ฒ ๊ฐ์ต๋๋ค ._
๋ํ bugsnag์์ ์ค๋ฅ๊ฐ ์์ฃผ ๋ฐ์ํ์ง ์์ต๋๋ค. ํ์ด์ง๊ฐ ๋ ๋๋ง๋๋์ง ์ฌ๋ถ๊ฐ ๋ช ํํ์ง ์์ต๋๋ค. @wardpeet ๋์์ด ๋๋ค๋ฉด bugsnag ์ ๋ํ ์คํ์ด ์์ต๋๋ค. ํฅ๋ฏธ๋กญ๊ฒ๋์ด ๊ฒฝ์ฐ ์ฌ๋ฌ ๋ฒ ์ฌ
๋ก๊น ๋ ์ค๋ฅ์ ๋ช ๊ฐ์ง ์ถ๊ฐ ์ ๋ณด๋ฅผ ์ถ๊ฐํ์ฌ ๋ฌธ์ ๋ฅผ ์ฐพ์ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
https://github.com/gatsbyjs/gatsby/issues/26706์ ๊ฒ์ ๋ ๋ค๋ฅธ ๋ฒ๊ทธ๊ฐ ๋ฐ์ํ ํ์ด์ง์์ ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
์ ๊ฒฝ์ฐ์๋ (์ ์ด๋) ๋ฐ์คํฌํฑ ํฌ๋กฌ์์ ๋ฐ์ํ๋ฉฐ ํ์ด์ง๋ฅผ ์ฒ์๋ก๋ ํ ๋๋ง ๋ฐ์ํฉ๋๋ค. ์๋ก ๊ณ ์นจ์ ๋๋ฅด๋ฉด ๋ชจ๋ ๊ฒ์ด ์์๋๋ก ๋ ๋๋ง๋ฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ incognito
๋ชจ๋๋ฅผ ์ฌ์ฉํ๊ณ ๋ด๊ฐ ์๊ฐํ ์์๋ ๋ชจ๋ ์บ์๋ฅผ ์ง์ฐ๋ ค๊ณ ํด๋ ์ฒ์์ผ๋ก ๋ณต์ ํ๋ ค๊ณ ์๋ํ๋ฉด ์ ์ ํ๊น์ง (๋๋ก๋ ๋งค์ฐ ๋ฌด์์๋ก) ํ ์ ์์ต๋๋ค (๋๋ก๋ ๊ฐ๋ฅํ์ต๋๋ค). ๋ฉฐ์น ) URL์ ๋ฐฉ๋ฌธํ์ฌ ๋์ผํ ์ค๋ฅ๋ฅผ ๋ฐ๊ฒฌํ์ต๋๋ค (๋ค์ ์๋ก ๊ณ ์นจํ๋ฉด ์ฌ๋ผ์ง).
์์ ๋งํฌ ๋ ๋ฌธ์ ์ ์ฌ์ฉํ ๋์ผํ ์ต์ ์ ์ฅ์๋ก ๋ณต์ ํ๋ ค๊ณ ํ๋ฉด ๋์ผํ ์ค๋ฅ๋ฅผ ๋ณผ ์ ์์ต๋๋ค (์ ์ด๋ ์ง๊ธ ์๋ํ ์๊ฐ์ ์๋).
์ค๋ฅ๋ (์ด ๊ฒฝ์ฐ) ์์กฐ ๊ฒฉ์๊ฐ ์์ฑ๋์ง ์์๊ธฐ ๋๋ฌธ์ ํ์๋ฉ๋๋ค. ์ ๊ฒฝ์ฐ์๋ ์ฌ์ฉ์๊ฐ ํ์ด์ง ์๋ก ๊ณ ์นจ์ ์๊ฐํ์ง ์๋ ํ ํ์ด์ง๋ฅผ ํ๊ดดํฉ๋๋ค (๊ทธ๋ ์ง ์์ ๊ฒ์ผ๋ก ์์ฌ๋ฉ๋๋ค)
์ฌ์ค ๋๋ฌด ๋ฌด์์๋ก ๋๊ปด์ ธ์ ๋ช ์ฃผ ๋์ ๋ณธ ์ ์ด ์์ง๋ง ํญ์ ๋ด PC์ ๋ญ๊ฐ ์๋ค๊ณ ์๊ฐํ์ต๋๋ค
npm auidit fix
์คํํ๋๋ฐ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค.
์ํ์! ๊ฐ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
์๋ ,
ํ๋ก๋์
์์๋ง์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ํน์ URL์ ๊ฒฝ์ฐ์ด ๋ฒ๊ทธ๋ฅผ 100 % ์ฌํํฉ๋๋ค. public
๋๋ ํ ๋ฆฌ์ ํธ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์ดํด ๋ณด๊ฒ ์ต๋๋ค.
icons
page-data
usages
brainstorming
page-data.json
seminaries
page-data.json
์ด๋ฌํ URL์ https://domain.com/usages/brainstorming
์
๋ ฅํ๋ฉด https://domain.com/usages/seminaries
๋ ์๋ฒฝํ๊ฒ ์๋ํฉ๋๋ค. https://domain.com/doesnotexist
์ ๊ฐ์ ์ ์์๋ URL์ ์
๋ ฅํ๋ฉด ๋น์ฐํ 404 ํ์ด์ง๊ฐ ์์ง๋ง https://domain.com/usages
์ ๊ฐ์ด ํธ๋ฆฌ์ ์ค์ ํด๋์ ์ผ์นํ๋ URL์ ๋๋ฌํ๋ ค๊ณ ํ๋ฉด์ด ๋น ํ์ด์ง๊ฐ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ์ค๋ฅ.
๋น์ ์๊ฒ ์ข ์ ์ธ๋ฆด ์ ์์ต๋๊น?
๋ฒ ์คํธ
@guillaumepotier ๋๋ nginx๋ฅผ ์ฌ์ฉํ๊ฒ ๋ ๊น?
์๋ชป๋ ์๋ต ํค๋๋ก ์ธํด ๋ฐ์ํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
@ daydream05 ์, ์ค์ ๋ก ์ฐ๋ฆฌ๋ nginx๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๋ก๊ทธ์์ ์์ ๋์ง ์์ ์ฝํ ์ธ ํค๋ 304 ๊ฐ์ ์๋ต 200 ๊ฐ๋ฅผ ํ์ธํ์ต๋๋ค.
AWS S3 ๋ฒํท ์ฌ์ฉ
AWS S3์์ ํธ์คํ (CloudFront CDN ์ฌ์ฉ)๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค.
npm audit fix
์คํํ๋๋ฐ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค.
์ฌ๋ฏธ์๋ @ liuuuk311. ๋๋ ์ฐ๋ฆฌ ํ๋ก์ ํธ์์ ๊ทธ๊ฒ์ ์๋ํ๊ณ ์๋ง๋ ์ฐ๋ฆฌ๋ฅผ ์ํด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ ๊ฒ์ ๋๋ค. ์๊ฐ์ด ์๋ ค ์ฃผ๊ฒ ์ง ๋ง ์ง๊ธ๊น์ง 48 ์๊ฐ์ด ์ง๋๋ฉด ๋ก๊ทธ์ ๋ฐ์์ด ์์ต๋๋ค.
ํธ์ง : 5 ์ผ ํ, ์ฌ์ ํ ๋ฐ์ํ์ง ์์ต๋๋ค ...
ํธ์ง : 10 ์ผ ํ ๋ค์ ๋ช ๋ฒ ๋ฐ์ํ์ต๋๋ค.๋ณด๊ณ ํด์ ์ฃ์กํฉ๋๋ค. npm audit fix
์คํํด๋ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
@wardpeet ์ง๋จ์ ๋์์ด ๋ ์์๋ ์ถ๊ฐ ๋ฒ๊ทธ ์ค๋ด๊ทธ ๋ฐ์ดํฐ ...
์ด๊ฒ์ ๋ฐ๋ฅด๋ฉด page-data.json ํ์ผ์ด ์ค์ ๋ก ์ฌ๋ฐ๋ฅด๊ฒ๋ก๋๋๋ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค ...
์ ๊ฒฝ์ฐ์๋ polyfill.io lib๋ฅผ ํ์ด์ง์๋ก๋ํ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
<script src="https://polyfill.io/v3/polyfill.min.js?version=3.52.1"></script>
@pedrofsantoscom ์ ์ ์ผ๋ก๋ก๋ ๋ ์คํฌ๋ฆฝํธ๊ฐ gatsby.js์ ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ํด๊ฒฐํ๋์ง ์ค๋ช ํด์ฃผ์ธ์.
์ด์ ๊ฐ์ ๋ฌธ์ ๊ฐ์์์ต๋๋ค. ์บ์๋ฅผ ๋ก์ปฌ์์ ์ง์ฐ๋ฉด ํ์ฌ ์ฌ์ฉ์๋ฅผ ์ํด ์์ ๋์์ต๋๋ค. ๋ฐ๋ผ์ Cloudflare์์ ์บ์๋ฅผ ์ง ์ ๊ณ ์ด์ ๋ ์ด์ ๋ณด๊ณ ์๋ฅผ๋ฐ์ง ๋ชปํฉ๋๋ค.
์บ์ ์ง์ฐ๊ธฐ๋ ์ฐ๋ฆฌ์ ํด๊ฒฐ์ฑ
์ด์์ต๋๋ค.
Cloudflare๋ฅผ ์ฌ์ฉํ์ง ์๊ณ AWS cloudfront CDN์ ์ฌ์ฉํ๋ฉฐ ๊ฐ ๋ฐฐํฌ ํ ๋ฌดํจํ๋ฉ๋๋ค. ๋๋ ์น ์๋ฒ๊ฐ ์์๋ ํ ๊ทธ๋ฆฌ๊ณ ์ผ๋ถ ๊ฒฐ๊ณผ์ ์ธ ํ์ด์ง ์ฌ๋ก๋์์ ์คํ์ ์๋ํ๋ฉด์ https๋ก ๋ก์ปฌ ์น ์๋ฒ๋ฅผ ์คํํ์ฌ ๋ก์ปฌ์์ ๋ฒ๊ทธ๋ฅผ ๊ฒฝํํ์ง๋ง ๋งค๋ฒ ๊ทธ๋ ์ง๋ ์์์ต๋๋ค. ํจํด์ด ๋ณด์ด์ง ์์ต๋๋ค. ๊ฐ๋ ๋ฐ์ํฉ๋๋ค.
Cloudflare๋ฅผ ์ฌ์ฉํ์ง ์๊ณ AWS cloudfront CDN์ ์ฌ์ฉํ๋ฉฐ ๊ฐ ๋ฐฐํฌ ํ ๋ฌดํจํ๋ฉ๋๋ค. ๋๋ ์น ์๋ฒ๊ฐ ์์๋ ํ ๊ทธ๋ฆฌ๊ณ ์ผ๋ถ ๊ฒฐ๊ณผ์ ์ธ ํ์ด์ง ์ฌ๋ก๋์์ ์คํ์ ์๋ํ๋ฉด์ https๋ก ๋ก์ปฌ ์น ์๋ฒ๋ฅผ ์คํํ์ฌ ๋ก์ปฌ์์ ๋ฒ๊ทธ๋ฅผ ๊ฒฝํํ์ง๋ง ๋งค๋ฒ ๊ทธ๋ ์ง๋ ์์์ต๋๋ค. ํจํด์ด ๋ณด์ด์ง ์์ต๋๋ค. ๊ฐ๋ ๋ฐ์ํฉ๋๋ค.
๊ทธ๊ฒ์ด ์ฐ๋ฆฌ๋ฅผ์ํ ํด๊ฒฐ์ฑ ์ด์์ต๋๋ค. ์บ์๋ฅผ ์ง ์ ์ ๋ ์๊ฐ๋น ์ค๋ฅ๊ฐ ๋น ๋ฅด๊ฒ ์ค์ด๋ค์๊ณ ์ ์ด๋ bugsnag์์ ๋์ผํ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง ์์์ต๋๋ค. ์ด๊ฒ์ ์ฐธ์ผ๋ก ์ด์ํ ์ค๋ฅ์ ๋๋ค.
๋์ผํ ์ค๋ฅ ๋ฉ์์ง๊ฐ ์์ง๋ง Internet Explorer์์๋ง ๋ํ๋ฉ๋๋ค. ๋ค๋ฅธ ๋ชจ๋ ๋ธ๋ผ์ฐ์ ๋ ์ด๋ฌํ ์ข ๋ฅ์ ์ค๋ฅ ๋ฉ์์ง๋ฅผ ํ์ํ์ง ์์์ต๋๋ค.
Unhandled promise rejection Error: page resources for / not found. Not rendering React
๋ด ๋ฐ์ ๊ตฌ์ฑ ์์์์ ๊ฐ์ ธ์จ ๊ฐ์ ธ ์ค๊ธฐ๋ก ๋ฌธ์ ๋ฅผ ์ถ์ ํ์ต๋๋ค. ์ด๋ค ๊ฒฝ์ฐ์๋ https://sap.github.io/ui5-webcomponents/ ์ ๋ํ ์ข ์์ฑ์ด์์์ต๋๋ค. ์ด๋ฌํ ์ข ์์ฑ์ ์ ๊ฑฐํ๋ฉด ๋ฌธ์ ๊ฐ ์ฌ๋ผ์ก์ต๋๋ค. ์ค์ ๊ทผ๋ณธ ์์ธ์ด ๋ฌด์์ธ์ง ์ค๋ช ํ ์๋ ์์ง๋ง ๋ฐ์ ์ปจํธ๋กค์ ์ข ์์ฑ์ผ๋ก ์ธํด์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์์ ์ง์ ํ๊ณ ์ถ์ต๋๋ค.
@Chaosbohne ์ gatsby.js
ํ์ด ์ข
์์ฑ ๊ด๋ฆฌ ๋ฐ ๋ณด์์ ๊ด๋ฆฌํ๊ณ ์ฒซ ๋ฒ์งธ ๋จ๊ณ์์ ๋ชจ๋ ์ข
์์ฑ / devDependency ๋ฒ์ ์์ ^
์ ๊ฑฐํ๋ฉด ๋ชจ๋ ๋ฌธ์ ๋ฅผ ๋ฐฉ์ง ํ ์์์ ๊ฒ ๊ฐ์ต๋๋ค.
์ด ๋ฌธ์ ๋ ๋ธ๋ผ์ฐ์ ์ ์์กดํ์ง ์๋๋ค๊ณ ๋งํ ์ ์์ต๋๋ค. Sentry ๋ก๊ทธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ Chrome ๋ฐ Safari์ Mac์ ๋ก์ปฌ Chrome 85, 86์์ ๋ณธ ์ ์ด ์์ต๋๋ค.
์ด๋ค ์๋ฃจ์ ๋ ์๋ํ์ง ์์ต๋๋ค. @KyleAMathews ์ด ๋ฌธ์ ๋ก ์ธํด ์ฐ๋ฆฌ๋ ์ฌ์ ์ ์๊ณ ์์ต๋๋ค.์ด ๋ฌธ์ ๋ 3-4 ์ผ ์ด๋ด์ ๋ฐ์ํ๋ฉฐ ๊ทผ๋ณธ ์์ธ์ ์ฐพ์ ์ ์์ต๋๋ค. ์ด ๋ฌธ์ ์ ๋ํ ํด๊ฒฐ์ฑ ์ ์ฐพ๋๋ก ๋์์ฃผ์ธ์.
@ R3coN ์น ์ฌ์ดํธ๋ฅผ ๋ค์
@ R3coN ์ด ๋์์ด ๋ ์ ์๋ค๋ฉด ์ ์๋ํ๋ ํจํค์ง ๋ฒ์ ์ด ์์ต๋๋ค.
"gatsby": "2.20.36",
"gatsby-cli": "^2.12.54",
"gatsby-image": "^2.4.13",
"gatsby-plugin-exclude": "^1.0.2",
"gatsby-plugin-google-analytics": "^2.3.11",
"gatsby-plugin-manifest": "^2.4.18",
"gatsby-plugin-offline": "^3.2.17",
"gatsby-plugin-react-helmet": "^3.3.10",
"gatsby-plugin-react-svg": "^3.0.0",
"gatsby-plugin-resolve-src": "^2.1.0",
"gatsby-plugin-sass": "^2.3.12",
"gatsby-plugin-sharp": "^2.6.19",
"gatsby-plugin-use-query-params": "^1.0.1",
"gatsby-source-filesystem": "^2.3.19",
"gatsby-source-graphql": "^2.6.2",
"gatsby-transformer-sharp": "^2.5.11",
@ shide1989 ์, ์ด๊ฒ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ์ ์ผํ ๋ฐฉ๋ฒ์ ๋๋ค. ์น ์ฌ์ดํธ๋ฅผ ๋ค์ ๋น๋ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ฌ ๊ตฌ์ถ๋ 2-3 ์ผ ๋์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐ ํ ํ ๋ค์์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ์ฐ๋ฆฌ๋ Gatsby CLI ๋ฒ์ : 2.12.67 ๋ฐ Gatsby ๋ฒ์ : 2.24.47์ ์ฌ์ฉ ํ๊ณ ์์ต๋๋ค ๊ฐ์ธ ๋น ๋ฒ์ ์ ๋ค์ด ๊ทธ๋ ์ด๋ํ์ฌ ์ด์ ์ํํด ๋ณผ ๊ฒ์ ๋๋ค.
@ shide1989 ๋๊ธ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ํ์ง๋ง ๋ฒ์ ์ ๋ค์ด ๊ทธ๋ ์ด๋ํ๋ฉด์ด ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.->
WebpackError :์ด StaticQuery์ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค.
์ด์ ๋ฒ์ 2.24.47์์ ์๋ํ์ต๋๋ค.
์ ๊ฐ์ค๋ฝ๊ฒ๋ ๋น๋ ํ์์ ์ฟผ๋ฆฌ๋ฅผ ์ถ์ถํ๋ ๋ฐ useStaticQuery ํํฌ๊ฐ ์ฌ์ฉ๋๋ ๋์ผํ ํ์ผ์ graphql ํ๊ทธ๊ฐ ์ง์ ๋ ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด์ด ์์ ์ ์์ต๋๋ค. (์ฌ๊ธฐ์ ์ค๋ช ๋๋๋ก : https://github.com/gatsbyjs/gatsby/issues/24526)
์ด์จ๋ ํ์ด์ ๋น๋๋ค
๊ทธ๋ฌ๋ ๋์ผํ ์ฝ๋๊ฐ gatsby 2.24.47์์๋ ์๋ํ๋ค๊ณ ๋งํ์ต๋๋ค.
@ R3coN ์ด ๋ฌธ์ ๋ ๋ถ์ ์ ํ ์ ์ ์บ์ฑ์ผ๋ก ์ธํด ๋ฐ์ํ ์๋ ์์ต๋๋ค. ์๋ฒ์ nginx ๋๋ s3๋ฅผ ์ฌ์ฉํ๊ณ page-data.json์ ๋ฌดํจํํ์ง ์์ผ๋ฉด ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ ๋๋ง๋ค StaticQueries๊ฐ ์ค๋จ๋ฉ๋๋ค.
๋๋์ด ๋ฌธ์ ๊ฐ ์์๊ณ ๋ชจ๋ page-data.json์ ์บ์ฑํ๊ณ ์์์ด ๋ฐํ์ก์ต๋๋ค. ๊ทธ๋ ๊ฒํด์๋ ์๋ฉ๋๋ค. ๋ชจ๋ ์์ฒญ์ ์ฌ ๊ฒ์ฆํด์ผํฉ๋๋ค.
@ daydream05 ๋๊ธ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์, CloudFront์์ S3๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. Cloudfront๋ก์ด๋ฅผ ๋ฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ์๊ณ ์์ต๋๊น?
@ daydream05 ์ด๋ฏธ cache-control : 'public, max-age = 0, must-revalidate'๊ฐ page-data.json ๋ฐ app-data.json์ ์ถ๊ฐ๋์ด ์ด๋ฌํ ํ์ด์ง๊ฐ ์บ์๋์ง ์์์ ์๋ฏธํฉ๋๋ค.
์กด์ฌํ์ง ์๋ ํ์ด์ง (404 ํ์ด์ง๋ฅผ๋ก๋ํ๊ณ ์ํํด์ผ ํจ)์์๋์ด ํ์์ด ๋ํ๋ฉ๋๋ค.
๋ก์ปฌ์์ ๋ด ๊ฐ๋ฐ ๋ฐ ํ๋ก๋์
๋น๋๋์ด ์ค๋ฅ์์ด ์๋ํ๋ฉฐ ๋น๋ ๋ ํ๋ก๋์
app-[hash].js
์์ ํด๋น ์ค๋ฅ๋ฅผ ๋ฐ์์ํค๋ ํ์ธ ์ค์ console.log
์ฝ์
ํ๋ฉด page
๊ฐ์ฒด๊ฐ ์กด์ฌํ๋ฉฐ ์์๋๋ก page.componentChunkName: ""component---src-pages-404-js"
๋ฅผ ํฌํจํฉ๋๋ค.
๊ทธ๋ฌ๋ ์ฑ์ด gatsby ํด๋ผ์ฐ๋์ ๋ฐฐํฌ๋๋ฉด ์กด์ฌํ์ง ์๋ ํ์ด์ง๊ฐ๋ก๋ ๋ ๋๋ง๋ค ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. SSR์ 404 ํ์ด์ง๊ฐ ๋ธ๋ผ์ฐ์ ์ ํ์๋์ง๋ง ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฏ๋ก React๊ฐ ๋ธ๋ผ์ฐ์ ์์ ์คํ๋์ง ์์ต๋๋ค. 404 ํ์ด์ง๊ฐ ์ง์ ๋ก๋๋๋ฉด ( /404
๊ฒฝ๋ก๋ฅผ ๋ฐฉ๋ฌธํ์ฌ) ์ค๋ฅ์์ด ์ ์์ ์ผ๋ก ์๋ํฉ๋๋ค.
์ง๊ธ๊น์ง ๋ก์ปฌ์์ ๋ณต์ ํ ์ ์์๊ธฐ ๋๋ฌธ์ ์ง๋จํ๊ธฐ๊ฐ ์ด๋ ต์ต๋๋ค.
์ต์ ๋ฒ์ ์ฌ์ฉ : "gatsby": "^2.24.91"
์ฌ๊ธฐ์ ๊ฒ์ํ์ฌ react-md
์ ์ฌ์ฉํ๋ ๋ค๋ฅธ ์ฌ์ฉ์๊ฐ ์ ์ํ๊ฒ ์ฌ์ดํธ๋ฅผ ์์ ํ ์ ์๋๋กํ๊ฑฐ๋ ์ด๊ฒ์ด Gatsby์์์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ๋์์ด๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
react-md
์ฌ์ฉํ๋ ํ๋ก์ ํธ ์ค ํ๋์์ ๋์ผํ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค.
๋ชจ๋ ๊ตฌ์ฑ ์์๋ฅผ ์ ๊ฑฐํ ํ ๋ฌธ์ ๋ฅผ ์ ๊ฑฐ ํ ์ ์์ต๋๋ค.
์ด๋ฅผ ํ ์คํธํ๊ธฐ ์ํด ๋งค๋ฒ ์ ํ์ ๋ฐฐํฌํด์ผํ๊ธฐ ๋๋ฌธ์์ด ๋ฌธ์ ๊ฐ์๋ ํน์ ๊ตฌ์ฑ ์์๋ฅผ ์ ํํ ์ฐพ์ ๋ด์ง ๋ชปํ์ง๋ง ๋ฒ์๋ฅผ ์ขํ์ต๋๋ค.
import Card from "react-md/lib/Cards/Card";
import CardTitle from "react-md/lib/Cards/CardTitle";
import CardText from "react-md/lib/Cards/CardText";
import CardActions from "react-md/lib/Cards/CardActions";
import { TextField, Button, Snackbar } from "react-md";
๋ ๊น์ด ํ๊ณ ๋ค ์๊ฐ ์ด ์์ผ๋ฉด
404 ํ์ด์ง์ ๊ด๋ จํ์ฌ ๋์ผํ ํจํด์ ํ๋์ด ์ ์๊ฒ ์ผ์ด๋๊ณ ์์ผ๋ฏ๋ก @aMoniker ์ ๋ฌธ์ ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
๋ก์ปฌ์์๋ ๊ฐ๋ฐ ๋ฐ ํ๋ก๋์
๋น๋ ๋ชจ๋ 404
ํ์ด์ง์์ ์ ๋๋ก ์๋ํ์ง๋ง Gatsby Cloud์ ๋ฐฐํฌํ๋ฉด ์ค์ /404
๊ฒฝ๋ก๋ฅผ ์ ์ธํ ๋ชจ๋ ์ ์์๋ ํ์ด์ง์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
๋ํ์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ์ฌ ๋ธ๋ผ์ฐ์ ์บ์๋ฅผ ์ญ์ ํ์ฌ ์์ ํ์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ชจ๋ ์ฉ๋๋ก ์ฌ์ฉํ๋๋ก ๊ฐ์ ํ ์๋ ์์ผ๋ฏ๋ก์ด๋ฅผ ํ์๋กํ์ง ์๋ ์๋ฃจ์ ์ ์ฐพ๋ ๊ฒ์ด ์ข์ต๋๋ค.
@ dejavu1987 ์ฐ๋ฆฌ๋์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ํ๋ก์ ํธ์ react-md๋ฅผ ์ฌ์ฉํ์ง ์์ต๋๋ค.
@MaciekBaron ๋ธ๋ผ์ฐ์ ์บ์๋ฅผ ์ฌ๋ฌ ๋ฒ ์ง์ฐ๊ณ ๊ฐ ์ง์ฐ๊ธฐ ํ์ ํ์ด์ง๋ฅผ ๋ค์๋ก๋ํ์ฌ ๋ก์ปฌ์์ ์ค๋ฅ๋ฅผ ์ฌํํ์ต๋๋ค.
์ด๊ฒ์ ์์ ์ธ๊ธํ๋ฏ์ด ์บ์ฑ ๋ฌธ์ ์ธ ๊ฒ ๊ฐ์ต๋๋ค. ์บ์ ํค๋๊ฐ ๋ชจ๋ ์ฌ๋ฐ๋ฅด๊ฒ ์ค์ ๋๋ฉด ์๋น์ค ์์ปค์ ๋ฌธ์ ๊ฐ์์ ์ ์์ต๋๋ค.
์ด ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํด ๋ณด์๊ฒ ์ต๋๊น?
https://www.npmjs.com/package/gatsby-plugin-remove-serviceworker
์ ๋์ด ๋ฌธ์ ์ ๋ถ๋ช ํ์ต๋๋ค. ๊ฐ๋ฐ ์ค์๋ ๋ชจ๋ ๊ฒ์ด ์ ์๋ํ์ง๋ง gatsby ๋น๋๋ฅผ ์คํํ๊ณ ์น ํธ์คํ ์ ์ฒด์ ๊ณต๊ฐ ๋๋ ํ ๋ฆฌ๋ฅผ ๋ฐฐํฌํ๋ฉด์ด ์ค๋ฅ ๋ฉ์์ง๋ก ์ธํด ํ์ด์ง๊ฐ ์๋ํ์ง ์์ต๋๋ค.
๋๋ ๋งค์ฐ ํธ๊ธฐ์ฌ์ด ๋ง์๊ณ ๊ณต๊ฐ ํ์ด์ง ๋ฐ์ดํฐ ๋๋ ํ ๋ฆฌ๋ฅผ ์กฐ์ฌํ์ต๋๋ค. ํน์ ํ์ด์ง ๋๋ ํ ๋ฆฌ๊ฐ ์กด์ฌํ์ง๋ง ์๋ฌธ์๊ฐ ์๋๋ผ ๋๋ ํ ๋ฆฌ๊ฐ ๋๋ฌธ์๋ก๋์ด ์์์ ๋ฐ๊ฒฌํ์ต๋๋ค. ๊ทธ๊ฒ์ด ๋ด๊ฐ ์ค๋ฅ ๋ฉ์์ง๋ฅผ๋ฐ์ ๋ฌธ์ ์์ต๋๋ค.
๊ทธ ํ ์ฒ์์๋ ์๋ฌธ์๋ก ๋ณ๊ฒฝํ์ผ๋ฉฐ ์ฐ๋ฅด๋ ์๋ฆฌ๊ฐ ์ ์๋ํฉ๋๋ค. ์ด์ ์ ํ์ด์ง ์ด๋ฆ์ ๋ณ๊ฒฝํ๊ณ ์ฌ๊ธฐ์ ๋ฌด์ธ๊ฐ๊ฐ ์บ์๋์ด ์๊ธฐ ๋๋ฌธ์ ์ด๋ฐ ์ผ์ด ๋ฐ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋๋ ๋ํ์ด ๋ฌธ์ ์ ๋ถ๋ช์ณค๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ์ฐพ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋๋ ๊ทธ๊ฒ์ด ์ง์ ํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ง ๋ชปํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ด์ ์์ ๋ฐฉ๋ฒ์ ์ค๋ช ํ๊ฒ ์ต๋๋ค.
์ด ๋ฌธ์ ๋ ํ ์คํธ ๋๋ ํ๋ก๋์ ํ๊ฒฝ์์ ๋ฐ๊ฒฌ๋์์ต๋๋ค. ์์์ ๋งํ ๊ฒ์ฒ๋ผ ๊ฐ๋ฐ ์ค์ ์ฌํ๋์ง ์์ต๋๋ค. ํ ์คํธ ๋ ํ๋ก๋์ ์์๋ ๋งค๋ฒ ๋ฐ์ํ์ง๋ ์์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ชจ๋ ์คํฌ๋ฆฝํธ๊ฐ ๋ฏธ๋ฆฌ๋ก๋๋๊ณ ๋น๋๊ธฐ ์ ์ผ๋ก ์คํ๋๋ ๊ฒ์ ๋ฐ๊ฒฌํ์ต๋๋ค. ๊ทธ๋์ ๋๋ณธ์ ์คํ ์์ ๋๋ฌธ์ผ ์ ์์ต๋๋ค.
3G fast
๋ก ์ค์ ํ๋ ๊ฒ๊ณผ ๊ฐ์ด ๋คํธ์ํฌ์์ ๋คํธ์ํฌ ์๋๋ฅผ ๋ฆ์ถ๋ฉด ๊ฑฐ์ ๋งค๋ฒ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. ์ด๊ฒ์ ๋ด ์ถ์ธก์ ํ์ธํ์ต๋๋ค.
๋ด ์ถ์ธก์ ์ ๋นํ ํ๊ธฐ ์ํด ๋ค์๊ณผ ๊ฐ์ด
exports.onPreRenderHTML = ({ replacePostBodyComponents, getPostBodyComponents }) => {
const postBodyComponents = getPostBodyComponents()
postBodyComponents.forEach((component) => {
if(component.type === 'script' && component.props) {
delete component.props.async
}
})
replacePostBodyComponents(postBodyComponents)
}
๋คํํ ์๋ํฉ๋๋ค.
์ด ๋ฐฉ๋ฒ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ง๋ง ์ข์ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ๊ฐ์ธ ๋น์ ๊ธฐ๋ฅ์ ์๋ฐ ํ ๊ฒ ๊ฐ์ต๋๋ค. ์คํฌ๋ฆฝํธ๊ฐ ๋น๋๊ธฐ ์ ์ผ๋ก ์คํ๋๋๋ก ์ค๊ณ ๋์์ต๋๊น?
์ด ๋ฐฉ๋ฒ์ผ๋ก ๋ชจ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
์ด ๋ฌธ์ ๋ ํ ์คํธ ๋๋ ํ๋ก๋์ ํ๊ฒฝ์์ ๋ฐ๊ฒฌ๋์์ต๋๋ค. ์์์ ๋งํ ๊ฒ์ฒ๋ผ ๊ฐ๋ฐ ์ค์ ์ฌํ๋์ง ์์ต๋๋ค. ํ ์คํธ ๋ ํ๋ก๋์ ์์๋ ๋งค๋ฒ ๋ฐ์ํ์ง๋ ์์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ชจ๋ ์คํฌ๋ฆฝํธ๊ฐ ๋ฏธ๋ฆฌ๋ก๋๋๊ณ ๋น๋๊ธฐ ์ ์ผ๋ก ์คํ๋๋ ๊ฒ์ ๋ฐ๊ฒฌํ์ต๋๋ค. ๊ทธ๋์ ๋๋ณธ์ ์คํ ์์ ๋๋ฌธ์ผ ์ ์์ต๋๋ค.
์ด ๋ฐฉ๋ฒ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ง๋ง ์ข์ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ๊ฐ์ธ ๋น์ ๊ธฐ๋ฅ์ ์๋ฐ ํ ๊ฒ ๊ฐ์ต๋๋ค. ์คํฌ๋ฆฝํธ๊ฐ ๋น๋๊ธฐ ์ ์ผ๋ก ์คํ๋๋๋ก ์ค๊ณ ๋์์ต๋๊น?
๋๋ ๋น์ ์ด ์ณ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด์ํ ์ด์ ๋ก ์ธํด์ด ๋ฌธ์ ๊ฐ ๋ค์ ๋ฐ์ํ์ต๋๋ค.
์ต์ ๋ฒ์ ์ ๊ฑฐ์น ์์ง๋ง ๋ต๋ณ์ ์ฐ๊ฒฐํ๋ฉด ์๋ฏธ๊ฐ ์์ต๋๋ค.
๊ทธ๋์ ์ต๊ทผ์ ๋ ์ด์์ ๊ตฌ์ฑ ์์์ ๊ธ๊ผด ์์ด์ฝ ๊ตฌ์ฑ ์์๋ฅผ ์ถ๊ฐํ์ฌ์ด ๋ฌธ์ ๋ฅผ ์ฌํํ์ต๋๋ค.
์ฃผ๋ชฉํด์ผ ํ ์ค์ํ ์ ์ ๊ธ๊ผด ์์ด์ฝ์ด ์ง๊ธ๊น์ง ๋ค๋ฅธ ๊น์ ์ค์ฒฉ ๊ตฌ์ฑ ์์์์ ์ฌ์ฉ๋์์ผ๋ฉฐ ํ์ด์ง ๊ตฌ์ฑ ์์์์ ํธ์ถ ๋ ์ฒซ ๋ฒ์งธ ๊ตฌ์ฑ ์์ ์ธ ๋ ์ด์์ ์์ค์์์ ๋๋ง ๋ฌธ์ ๋ฅผ ์ผ์ผํค์ง ์์๋ค๋ ๊ฒ์
๋๋ค.
๋ด๊ฐ ํ๋ ธ์ ์๋ ์์ง๋ง ์ค์ ์์ธ์ ํ์ ํ๋ ๋ฐ ์ข์ ์๋๋ฆฌ์ค๊ฐ ๋ ์ ์์ต๋๋ค.
@ dejavu1987 ๋์ํฉ๋๋ค. ์ค์ ์์ธ์ ํ์ ํ ์์๋ ์ข์ ์๋๋ฆฌ์ค๋ฅผ ์ ๊ณตํ์ ์ ์์ต๋๋ค.
๋ํ webpack์ด ์ฝ๋๋ฅผ ๋ค๋ฅธ ์ฒญํฌ๋ก ๋ถํ ํ์ง๋ง ์ฒญํฌ์๋ ์ข
์์ฑ์ด์์ ์ ์์ผ๋ฏ๋ก async
์คํฌ๋ฆฝํธ๋ฅผ๋ก๋ํ๊ณ ์คํํ๋ ๊ฒ์ด ์ ํฉํ ์ง ๊ถ๊ธํฉ๋๋ค.
์ฃผ์ ๋ฌธ์ ๋ Gatsby๊ฐ ํ์ด์ง ๋ก๋ฉ ์ค์ ์ค๋ฅ๋ฅผ ์ผํค๊ณ ๋งค์ฐ ์ผ๋ฐ์ ์ธ page resources for / not found. Not rendering React
๋ฉ์์ง๋ฅผ๋ณด๊ณ ํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ด๊ฒ์ด์ด ์ค๋ ๋์๋ณด๊ณ ๋ ๋ค์ํ ์ ์ฌ์ ์์ธ์ด์๋ ์ด์ ์
๋๋ค.
๋ด ๋ฌธ์ ๋ Mobx 5๊ฐ IE11์ ์ง์ํ์ง ์๋๋ค๋ ๊ฒ์ด ๋ฐํ์ก์ต๋๋ค. Mobx๊ฐ ์ด์ ๋ํ ๋ฉ์ง ์ค๋ฅ ๋ฉ์์ง๋ฅผ ์ ๊ณตํ๋ ๋์ ๋ด๊ฐ๋ฐ์ ๊ฒ์ Gatsby์ "ํ์ด์ง ๋ฆฌ์์ค๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค"๋ผ๋ ๋ฉ์์ง๋ฟ์ด์์ต๋๋ค.
ํ์ด์ง๋ก๋ ์คํจ๋ฅผ ์ ๋ฐ ํ ์๋ ์ค๋ฅ ๋ฉ์์ง๋ฅผ๋ณด๊ณ ํ๋์ด ๋ฌธ์ ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ผ๋ก ๊ฒธ์ํ๊ฒ ์ ์ํฉ๋๋ค. ๋ฟก๋ฟก
๋๋ฅผ ์ํด ๊ณ ์น ๊ฒ์ 404 ํ์ด์ง์์ 200์ ๋ฐํํ๋๋ก S3๋ฅผ ์ค์ ํ๋ค๋ ๊ฒ์ ๋๋ค. 404 ์ํ ์ฝ๋๋ฅผ ๋ฐํํ๋๋ก ๋ณ๊ฒฝํ์ ๋ ์๋ํ์ต๋๋ค.
๋ค, ์ด๊ฒ๋ ์ฐพ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ด ๋ฌธ์ ๋ ๋ ๊ด๋ฒ์ํ์ต๋๋ค. Cloudfront 404 ๊ฒฐ๊ณผ์์ ๋ถ์ ์ ํ๊ฒ ์บ์ฑํ์ต๋๋ค. Cloudfront์ S3๊ฐ์ 404 ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ด์ ๋ CodePipeline์ ํตํด S3์ ๋ฐฐํฌํ๋ฉด Build Artifact ZIP ํ์ผ์ ์์ถ์ด ํ๋ฆฐ๋ค ๊ณ ์๊ฐํ์ง๋ง ํน์ ์์๋ก ์ํํ์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ฐ๋ผ์ ๋ช ๋ถ ๋์ ์์ง์๋ ์ .JS ํ์ผ (์ ํด์ ํฌํจ)์ ๊ฐ๋ฆฌํค๋ ์ .HTML ํ์ผ์ ๊ฐ์ง ์ ์์ต๋๋ค. ํด์ ๋ ์์ฐ ํ์ผ์ ๋ํ ์บ์ฑ์ ์ฒ๋ฆฌํ๋ ๊ฒ์ด ๋ฌด์์ด๋ 404 ๊ฒฐ๊ณผ์ ์บ์ํ์ง ์์์ผํฉ๋๋ค. ์ด๋ CDN ์บ์๋ฅผ ํ๋ฌ์ํด์ผ๋ง ์์ ํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
๊ทธ๋ฐ๋ฐ HTML ํ์ผ์ด S3์ ๋ง์ง๋ง์ผ๋ก ๋ฐฐํฌ๋์๋์ง ํ์ธํ๋ ๋ฐฉ๋ฒ์ ์์ ๋ธ ์ฌ๋์ด ์์ต๋๊น?
๋ฐ์ด๋น๋
https://ewebinar.com
2020 ๋ 10 ์ 21 ์ผ ์คํ 12์ 40 ๋ถ์ Vince P. [email protected] ์ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
@ R3coN https://github.com/R3coN ์ด ๋ฌธ์ ๋ ๋ถ์ ์ ํ ์ ์ ์บ์ฑ์ผ๋ก ์ธํด ๋ฐ์ํ ์๋ ์์ต๋๋ค. ์๋ฒ์ nginx ๋๋ s3๋ฅผ ์ฌ์ฉํ๊ณ page-data.json์ ๋ฌดํจํํ์ง ์์ผ๋ฉด ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ ๋๋ง๋ค StaticQueries๊ฐ ์ค๋จ๋ฉ๋๋ค.
๋๋์ด ๋ฌธ์ ๊ฐ ์์๊ณ ๋ชจ๋ page-data.json์ ์บ์ฑํ๊ณ ์์์ด ๋ฐํ์ก์ต๋๋ค. ๊ทธ๋ ๊ฒํด์๋ ์๋ฉ๋๋ค. ๋ชจ๋ ์์ฒญ์ ์ฌ ๊ฒ์ฆํด์ผํฉ๋๋ค.
https://www.gatsbyjs.com/docs/caching/ https://www.gatsbyjs.com/docs/caching/
โ
์ด ์ค๋ ๋๋ฅผ ๊ตฌ๋ ํ๊ธฐ ๋๋ฌธ์์ด ๋ฉ์์ง๊ฐ ์ ์ก๋์์ต๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ GitHub https://github.com/gatsbyjs/gatsby/issues/19618#issuecomment-713298516 ์์ ๋ณด๊ฑฐ๋ ํ์ธ์ .
PWA ํ ์คํธ๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ์ฌ์ฉํ์ง ์๊ณ ๋ชจ๋ฐ์ผ ํ ์คํธ์์ Chrome Lighthouse Audit ๋ฌธ์ ๋ฅผ ์ฌํํ๋ค๊ณ ๋ง๋ถ์ผ ์ ์์ต๋๋ค. ๋ชจ๋ฐ์ผ ํ ์คํธ๋ ๋คํธ์ํฌ ๋ฐ CPU ์ ํ์ ์ฌ์ฉํ๋ฏ๋ก ๋น๋๊ธฐ ์คํฌ๋ฆฝํธ๊ฐ ์์๋๋ก๋ก๋๋์ง ์๊ฑฐ๋ 30 ๊ฐ ์ค ํ๋๊ฐ ์คํจํ๋ ๊ฒฝ์ฐ๊ฐ ์์ฃผ ๋ฐ์ํ ์ ์์ต๋๋ค.
์ ๋ 3D๋ก ์์
ํ๊ณ ์์ผ๋ฉฐ webpack
๋ฐ gatsby.js
๋ก localhost
์์๋ ํ์ด์ง๋ฅผ ๋ค์๋ก๋ํ๋ฉด ์ ์ ๋ชจ๋ธ gtlf
๋ํ ๋คํธ์ํฌ ์์ฒญ์ด ์คํจํ๋ ๊ฒฝ์ฐ๊ฐ ์์ฃผ ๋ฐ์ํฉ๋๋ค. ํ์ผ. ๊ทธ์ค ํ๋๊ฐ ์คํจํ์ต๋๋ค. ๋ชจ๋ ์ฑ์ด ์์๋์์ต๋๋ค (ErrorBoundary๊ฐ ์ค์ ๋์ง ์์ ๊ฒฝ์ฐ).
์ฌ๊ธฐ์ ๋์ผํ ํจํด์ด์์ ์ ์์ง๋ง ์ ์ ํ ์ค๋ฅ ์ฒ๋ฆฌ๊ฐ ์์ ์ ์์ต๋๋ค.
ํ๋ก๋์
์ S3 ๋ฐ CloudFront๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๋น์ทํ ๋ฌธ์ ๊ฐ ์์์ง๋ง ์ ๊ฒฝ์ฐ์๋ Cloudfront์์๋ง ์ฝ์์์ Can't render React
์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค. ์ด๊ฒ์ ํ๋ก๋์
S3์์ ํ์ผ์ ๋ณ๊ฒฝ ํ ํ ๋ฐ์ํ๊ธฐ ์์ํ์ต๋๋ค. ๋๋๊ฒ๋ ์์ฐ ์์ ์ ์ํด ๋ฑ๋๋ฅผ ๋ค์ ์คํ ํ ํ ํด๊ฒฐ ๋ ๋ฌธ์ ์
๋๋ค.
์ด๊ฒ์ ์ผ๋ฐ ๋ชจ๋์ ๋ด ์ฅ์น์์๋ง ๋ฐ์ํ์ต๋๋ค. ์ ๊ฒฝ์ฐ์๋ ์ ์ฒด ์บ์, ์ฟ ํค, ๋ก์ปฌ ์คํ ๋ฆฌ์ง, ์ธ์ ์คํ ๋ฆฌ์ง ๋ฐ ์๋น์ค ์์ปค๋ฅผ ์ฒญ์ํ๋ ๊ฒ์ด ๋ ์ผ์ฐ ๋์์ด๋์ง ์์์ต๋๋ค.
๋ฐ๋ผ์ lighthouse๋ก ์ ์ ์์ ์ ํ๋กํ์ผ ๋งํ๊ณ ํ์ผ์ด ๋ณ๊ฒฝ๋ ๊ฒฝ์ฐ์ด ๋ฌธ์ ๋ ๋ฐ์ํ ์ ์์ต๋๋ค (์ ๊ฒฝ์ฐ์๋)
๋ด ์์ ์ 10 ๊ฐ์์ 1 ๊ฐ ์ ๋์ ๋ฑ๋๋ก ์ฌํ ํ ์ ์๊ณ ๋ง์ง๋ง ๋ฐฐ์น๋ ์ค๋ ์ ์ด์์ต๋๋ค.
๋๋ ๊ฐ์ธ ๋น๊ฐ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ค. ์๋ํ๋ฉด ์ด๊ฒ์ ๋ชจ๋ ์ฌ๋์๊ฒ ์ผ์ด๋๊ณ ์์ง๋ง ๊ทธ ์ด์ ๋ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ด๋ค. ๋น ํ์ด์ง๊ฐ ๋๋ฌด ์์ฃผ ๋ฐ์ํ๊ฑฐ๋ ๋ฐฑ์๋ ๊ฐ์ธ ๋น ํ์ด์ง์์ ๋ฌด์ธ๊ฐ๋ฅผ ๋ณ๊ฒฝํ ๋๋ง๋ค ๋น ํ์ด์ง๊ฐ๋๊ณ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉฐ ๊ทธ ์ค๋ฅ๋ ๋งค๋ฒ ๋ค๋ฆ ๋๋ค. ๋๋ ์ฐ๋ฆฌ๊ฐ gatsby ์ฌ์ฉ์ ์ค๋จํ๊ณ ๋ค๋ฅธ ์ ๋ขฐํ ์์๋ ํ๋ ์ ์ํฌ๋ก ์ ํํด์ผํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ฌํ ํ ์์๋ ๋ฐฉ๋ฒ์ด ์์ผ๋ฉด ์ค๋ฅ๋ฅผ ์์ ํ ์ ์์ง๋ง ๊ทธ๋ ์ง ์์ต๋๋ค. ์ด ์ค๋ฅ๋ ๋ฌด์์๋ก ๋ฐ์ํ๋ฉฐ ๋๋ก๋ ๋ฐฐํฌ ํ ํ๋ฃจ์ ๋ฐ์ํ๋ฉฐ ๋๋ก๋ ๋ฐฐํฌ ํ 3-4 ์ผ ํ์ ๋ฐ์ํฉ๋๋ค. ํ์ง๋ง ์ผ์ด๋๋ค.
@antoinerousseau ๋ญ ์ฐพ์ ์ด? ๋๊ตฌ๋ ์ง์ด ๋ฌธ์ ๋ฅผ ์ ์ด๋ ๋๋ฒ๊น ํ๋ ๋ฐฉ๋ฒ์ ๋จ๊ณ๋ณ๋ก ๋งํด ์ค ์ ์์ต๋๊น? ๋๋ ๋ด ์ชฝ์์ ๋ชจ๋ ๊ฒ์ ์๋ํ์ง๋ง ์น ์ฌ์ดํธ๋ฅผ ๋ฐฐํฌ ํ ํ 1-2 ์ผ์ด ์ง๋ฌ๋ค. ๋์๊ฒ ๋๋ฌด ๋ฌด์์๋ก ๋ฐ์ํ๊ธฐ ๋๋ฌธ์์ด ๋ฌธ์ ๊ฐ ์ธ์ ๋ฐ์ํ๋์ง ์๋ ๋ฐฉ๋ฒ์ ์๋ ค์ฃผ๋ ์ฌ๋์ด ์์ต๋๊น?
๋๋ฅผ ์ํด ๊ณ ์น ๊ฒ์ 404 ํ์ด์ง์์ 200์ ๋ฐํํ๋๋ก S3๋ฅผ ์ค์ ํ๋ค๋ ๊ฒ์ ๋๋ค. 404 ์ํ ์ฝ๋๋ฅผ ๋ฐํํ๋๋ก ๋ณ๊ฒฝํ์ ๋ ์๋ํ์ต๋๋ค.
S3 ๋๋ Cloudfront?
์ ๊ฒฝ์ฐ์๋ Azure์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉํ๋ 404 ํ์ด์ง์ ๋ฌธ์ ๊ฐ์์์ต๋๋ค. ์ฐจ๋จ ์ค๋ฅ ์๊ณ ์ฝ์์์ ๋ณผ ์ ์์๋ ์ ์ผํ ๊ฒ์
Error / page resources for / not found. Not rendering React
์ฌ์ฉ์ ์ง์ 404๋ฅผ ์ฌ์ฉํ๊ธฐ ์์ํ ์ดํ๋ก ๋ฌธ์ ๊ฐ ์ฌ๋ผ์ก์ต๋๋ค.
Netlify์ ์ฑ์ ๋ฐฐํฌ ํ ๋๋ ๋๊ฐ์ต๋๋ค. Locally Gatsy Build์ Gatsby Serve๊ฐ ์ ์๋ํฉ๋๋ค .. ์ด๊ฒ์ ํจ์ฌ ๋ ์ด์ํฉ๋๋ค ..
@atapas Netlify ์ง์ํ์ ๋ฌธ์ ํด ์ฃผ์๊ฒ ์ต๋๊น? ๊ทธ๋ค์ด ์์ ์ ํธ์์ ๋ญ๊ฐ๋ฅผ ๋ช ํํ ํ ์ ์์๊น์?
@atapas Netlify ์ง์ํ์ ๋ฌธ์ ํด ์ฃผ์๊ฒ ์ต๋๊น? ๊ทธ๋ค์ด ์์ ์ ํธ์์ ๋ญ๊ฐ๋ฅผ ๋ช ํํ ํ ์ ์์๊น์?
์ ๋๋ ํ์ด. ๊ฐ์ฌ!
์๋ง๋ ๋ ๋์ ์คํ ์ถ์ ์ด๋ ๋ช ํํ ์ค๋ฅ ๋ฉ์์ง๊ฐ ์ฌ๊ธฐ์ ๋์์ด ๋ ๊ฒ์ ๋๋ค. ์ด์จ๋ ์๋ต ๊ฐ์ฌํฉ๋๋ค.
@atapas ๋๋ ํ์ ์ผ์์ด ์๋๋ฉฐ ๋น์ ๊ณผ ๊ฐ์ ๋ฒ๊ทธ๋ฅผ ๊ฒช๊ณ ์์ต๋๋ค.
Netlify์ ์ฑ์ ๋ฐฐํฌ ํ ๋๋ ๋๊ฐ์ต๋๋ค. Locally Gatsy Build์ Gatsby Serve๊ฐ ์ ์๋ํฉ๋๋ค .. ์ด๊ฒ์ ํจ์ฌ ๋ ์ด์ํฉ๋๋ค ..
๋๋ ์์ ํ ๋ค๋ฅธ ๋งฅ๋ฝ์์ ํด๊ฒฐ์ฑ ์ ์ฐพ์์ต๋๋ค. Netlify๊ฐ Auth0์ด ๋ด ์ฑ์์ ์๋ํ๋๋ก ์ค์ ํ ํ๊ฒฝ ๋ณ์๋ฅผ ๋ฌด์ํ๊ธฐ ๋๋ฌธ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค.
๋๋ฉ์ธ : process.env.AUTH0_DOMAIN,
clientID : process.env.AUTH0_CLIENTID,
redirectUri : process.env.AUTH0_CALLBACK,
๋์ค์ ์ฌ๊ธฐ ์์ "๋ฏผ๊ฐํ ๋ณ์์์ด ๋ฐฐํฌ"์ ๋ํด ์ฝ๊ณ ๋ฌธ์์์ ์ธ๊ธ ํ๋๋ก ์์ ํ์ต๋๋ค.
๋ด๊ฐ๋ฐ์ ์ค๋ฅ์ ๋๋๊ณ ์๋ฃจ์ ์ด ..์ ๋์ฐฉํ์ง๋ง ํจ๊ณผ๊ฐ์์ด ๊ธฐ๋ปค์ต๋๋ค.
@atapas ๋๋ ํ์ ์ผ์์ด ์๋๋ฉฐ ๋น์ ๊ณผ ๊ฐ์ ๋ฒ๊ทธ๋ฅผ ๊ฒช๊ณ ์์ต๋๋ค.
@ JustFly1984 , ์ ๋ง ๊ณ ๋ง์ต๋๋ค. ๋๋ Netlify ๋ฌธ์๋ฅผ ์ดํด ๋ณด์๊ณ ์์ ์ฃผ์์์ ์ธ๊ธ ํ ํด๊ฒฐ์ฑ ์ ์์๋ผ ์์์์ต๋๋ค.
๋๋ ์ด๊ฒ์ ํฌ๋กฌ์์๋ง ์ป๊ณ ์๋ค. Safari๋ ํ๋ฅญํ๊ฒ ์๋ํฉ๋๋ค. ๋ฐฉ๊ธ ํ๋ก์ ํธ์ ์คํ๋ผ์ธ ๋ฐ ๋งค๋ํ์คํธ ํ๋ฌ๊ทธ์ธ์ ์ถ๊ฐํ์ต๋๋ค. Gatsby develop
๋๋ gatsby build
& gatsby serve
๋ก ๋ก์ปฌ์์ ์ฌํ ํ ์ ์์ต๋๋ค. Netlify์์ ํธ์คํ
ํ๊ณ ์์ต๋๋ค.
๋์๊ฒ React ๊ตฌ์ฑ ์์ ์ธ๋ถ ์์ด ์ฝ๋ ๋ธ๋ก๊ณผ React ๊ตฌ์ฑ ์์์ ์ ์ญ ๋ณ์๋ฅผ ์ฐธ์กฐํ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค. ์ ๊ฑฐํ๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค.
let deferredprompt = null;
let updateAvailable = false;
if (
typeof window !== "undefined" &&
window.hasOwnProperty("BeforeInstallPromptEvent")
) {
window.addEventListener("beforeinstallprompt", (event) => {
deferredprompt = event;
event.preventDefault();
});
}
if (typeof window !== "undefined" && window.isUpdateAvailable) {
window.isUpdateAvailable.then(
(isAvailable) => (updateAvailable = isAvailable)
);
}
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ฌ์ ํ ๋ฌธ์ ์ ๋๋ค.