Gatsby: ๋ชจ๋“  gatsby ๋ช…๋ น์— ๋Œ€ํ•œ ๋ชจํ˜ธํ•œ "StoreStateProvider"์˜ค๋ฅ˜

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

๊ธฐ์ˆ 

Gatsby๋ฅผ 2.17.7์—์„œ 2.18.4๋กœ ์—…๋ฐ์ดํŠธ ํ•œ ํ›„ ๋ชจ๋“  ์ข…๋ฅ˜์˜ gatsby ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ง ๊ทธ๋Œ€๋กœ ๋ฌธ๋งฅ์ด ์—†์Šต๋‹ˆ๋‹ค.

> gatsby clean

The above error occurred in the <StoreStateProvider> component:
    in StoreStateProvider
    in App

React will try to recreate this component tree from scratch using the error boundary you provided, App.
Warning: App: Error boundaries should implement getDerivedStateFromError(). In that method, return a state update to display an error message or fallback UI.
> gatsby build

The above error occurred in the <StoreStateProvider> component:

...

ํ™˜๊ฒฝ

๋ถˆํ–‰ํžˆ๋„ ๋‹ค๋ฅธ ๋ช…๋ น๊ณผ ๋™์ผํ•œ StateStoreProvider ์˜ค๋ฅ˜์™€ ํ•จ๊ป˜ ์ถฉ๋Œํ•˜๋ฏ€๋กœ gatsby info --clipboard ์‹คํ–‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. Gatsby ๋ฒ„์ „์„ ๋‹ค์‹œ ๋˜๋Œ๋ฆฌ๊ณ ์ด ๋ช…๋ น์„ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ์ถœ๋ ฅ์˜ Gatsby ๋ฒ„์ „์€ ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์Šต๋‹ˆ๋‹ค .

  System:
    OS: Windows 10
    CPU: (8) x64 Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz
  Binaries:
    npm: 6.9.0 - C:\Program Files\nodejs\npm.CMD
  Languages:
    Python: 2.7.16 - C:\Python27\python.EXE
  Browsers:
    Edge: 44.18362.267.0
  npmPackages:
    gatsby: ^2.17.7 => 2.17.7
    gatsby-source-apiserver: ^2.1.4 => 2.1.4
stale? needs reproduction bug

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

๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค! npm์„ ์‚ฌ์šฉํ•˜์—ฌ ์ œ๊ฑฐํ•œ ๋‹ค์Œ react , react-dom ๋ฐ gatsby ๋ฅผ (๋‹ค์‹œ) ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ ์ •ํ™•ํ•œ ์ˆœ์„œ๋กœ ๊ทธ๊ฒƒ์„ํ–ˆ๋‹ค (๋‚˜๋Š” ์ˆœ์„œ๊ฐ€ ์ค‘์š” ํ•  ๊ฒƒ์ด๋ผ๊ณ  ๋ฏฟ์ง€ ์•Š๋Š”๋‹ค.

npm ls react ๋Š” ๋‘ ๊ฐ€์ง€ ๋ฒ„์ „์„ ํ‘œ์‹œํ•˜์ง€๋งŒ ๋™์ผํ•˜๋ฉฐ "์ค‘๋ณต ๋จ"์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

[email protected] <redacted the filepath>
โ”œโ”€โ”ฌ [email protected]
โ”‚ โ””โ”€โ”ฌ [email protected]
โ”‚   โ””โ”€โ”€ [email protected]  deduped
โ””โ”€โ”€ [email protected]

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

2.17.10์—์„œ 2.18.4๋กœ ์—…๋ฐ์ดํŠธ ํ•œ ํ›„์—๋„ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์‹ ๊ณ  ํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

gatsby-cli๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๊นŒ? ์ด๊ฒƒ์ด ๋„์›€์ด๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด, ์šฐ๋ฆฌ์—๊ฒŒ ๋ณต์ œ ์ €์žฅ์†Œ๋ฅผ ์ œ๊ณตํ•ด ์ฃผ์‹œ๋ฉด ์ •๋ง ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

์‹ค์ œ๋กœ ์ „ ์„ธ๊ณ„์ ์œผ๋กœ CLI๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์ ํŠธ๋Š” ๋กœ์ปฌ์— ์„ค์น˜๋œ Gatsby ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜์—ฌ gatsby <command> ๋ฅผ ์ฐจ๋ก€๋กœ ์‹คํ–‰ํ•˜๋Š” npm run <command> ๋ช…๋ น์— ์˜์กดํ•ฉ๋‹ˆ๋‹ค.

์ด ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์€ ์ „ ์„ธ๊ณ„์ ์œผ๋กœ ์˜์กดํ•˜๋Š” ๊ธฐ๊ณ„๋ฅผ ๋ฒ„๋ฆด ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. (์ž ์žฌ์ ์œผ๋กœ ๋‹ค๋ฅธ ๋ฒ„์ „์ด ํ•„์š”ํ•œ ์—ฌ๋Ÿฌ ํ”„๋กœ์ ํŠธ์—์„œ ์ž‘์—…ํ•˜๋ฉด ์ถ”์•…ํ•ด์งˆ ์ˆ˜ ์žˆ์Œ)

์˜ค๋Š˜ ์ดˆ๋ฐ˜ ๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋Š”๋ฐ ๋ฐ˜์‘, react-dom ๋ฐ gatsby๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ณ  node_modules ๋ฐ package-lock.json์„ ์ง€์šฐ๋Š” ๊ฒƒ์ด ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ npm install์„ ๋‹ค์‹œ ์‹คํ–‰ํ•˜๊ณ  ๋ชจ๋“  ๊ฒƒ์ด ์ž˜ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

react ๋ฐ react-dom ๋ฐ Gatsby ์—…๋ฐ์ดํŠธ๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. Gatsby๊ฐ€ ํ˜ธํ™˜๋˜๋Š” ์˜ฌ๋ฐ”๋ฅธ React ๋ฒ„์ „์„ ๋‚˜์—ดํ•ด์•ผํ•˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ?

์–ด์ œ ๋‚˜๋Š” deps๊ฐ€ ์‹ค๋กœ ์„ค์น˜ ๋  ๋•Œ ๊ฐœ์ธ ๋น„ ๋นŒ๋“œ / ๊ฐœ๋ฐœ์ด ์ž˜ ์ž‘๋™ํ•˜๋Š”์ง€ ์•Œ์•„ ๋‚ด๊ธฐ ์œ„ํ•ด ๋ฐ˜๋‚˜์ ˆ์„ ๋ณด๋ƒˆ๋‹ค.

React์™€ Gatsby ๊ฐ„์˜ ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ์™€ ๊ด€๋ จ์ด์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ž ๊ธˆ ํŒŒ์ผ์—†์ด ์ฒ˜์Œ๋ถ€ํ„ฐ ์ข…์†์„ฑ์„ ์„ค์น˜ํ•˜๋Š” ๊ฒฝ์šฐ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž (yarn ๋˜๋Š” npm)๋Š” ์ตœ์‹  ๋ฒ„์ „ (package.json์˜ ์ œํ•œ์— ์˜ํ•ด ํ—ˆ์šฉ๋จ) ๋งŒ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

์ œ ๊ฒฝ์šฐ์—๋Š” ๋ฐ˜์‘ ๋ฒ„์ „์ด package-lock.json ์— ์ž ๊ฒจ ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ƒˆ๋กœ ์„ค์น˜ํ•˜๋”๋ผ๋„ Gatsby์™€ ํ•จ๊ป˜ ์—…๋ฐ์ดํŠธ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” gatsby, gatsby-cli, react ๋ฐ react-dom์„ ์„ฑ๊ณต์œผ๋กœ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค. ํ™•์‹คํ•œ ํ•ด๊ฒฐ์ฑ…์ด ์žˆ์Šต๋‹ˆ๊นŒ?

ํŽธ์ง‘ : ๋‚˜๋Š” gatsby์™€ gatsby-cli๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๊ฐœ๋ณ„์ ์œผ๋กœ ๋‹ค์‹œ ์„ค์น˜ํ–ˆ์œผ๋ฉฐ ์ˆ˜์ • ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด์ƒํ•œ ๋ฌธ์ œ.

์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‘ ๊ฐ€์ง€ ๋ฒ„์ „์˜ ๋ฐ˜์‘์ด ์„ค์น˜๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. npm ls react ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ํ™•์ธํ•˜์„ธ์š”. ๋‚ด package.json์— ์ง€์ •๋œ ๋ฐ˜์‘ ๋ฒ„์ „์ด ์žˆ์œผ๋ฉฐ gatsby / gatsby-cli 2.18.5์— ๋‹ค๋ฅธ ๋ฒ„์ „์˜ ๋ฐ˜์‘์ด์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๋ฅผ ํ†ตํ•ด ๋ฌธ์ œ๋ฅผ ์•Œ๊ฒŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์—ฌ์ „ํžˆ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ์ค‘ ...

๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค! npm์„ ์‚ฌ์šฉํ•˜์—ฌ ์ œ๊ฑฐํ•œ ๋‹ค์Œ react , react-dom ๋ฐ gatsby ๋ฅผ (๋‹ค์‹œ) ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ ์ •ํ™•ํ•œ ์ˆœ์„œ๋กœ ๊ทธ๊ฒƒ์„ํ–ˆ๋‹ค (๋‚˜๋Š” ์ˆœ์„œ๊ฐ€ ์ค‘์š” ํ•  ๊ฒƒ์ด๋ผ๊ณ  ๋ฏฟ์ง€ ์•Š๋Š”๋‹ค.

npm ls react ๋Š” ๋‘ ๊ฐ€์ง€ ๋ฒ„์ „์„ ํ‘œ์‹œํ•˜์ง€๋งŒ ๋™์ผํ•˜๋ฉฐ "์ค‘๋ณต ๋จ"์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

[email protected] <redacted the filepath>
โ”œโ”€โ”ฌ [email protected]
โ”‚ โ””โ”€โ”ฌ [email protected]
โ”‚   โ””โ”€โ”€ [email protected]  deduped
โ””โ”€โ”€ [email protected]

์ง€๊ธˆ์€ ์ฐจ๋‹จ์ด ํ•ด์ œ๋˜์–ด ์žˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ์šฐ๋ ค ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
1) ๋‘ ๊ฐ€์ง€ ๋ฒ„์ „์˜ ๋ฐ˜์‘์ด ์—ฌ์ „ํžˆ ์กด์žฌํ•ฉ๋‹ˆ๊นŒ? (์ž˜ ๋ชจ๋ฅด๊ฒ ์–ด) ์ง€๊ธˆ์€ ๊ฐ™์€ ๋ฒ„์ „์ด๋ผ๋„
2) ํ–ฅํ›„ ๊ฐœ์ธ ๋น„ ์—…๋ฐ์ดํŠธ๋กœ ์ธํ•ด์ด ๋ฌธ์ œ๊ฐ€ ๋‹ค์‹œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๊นŒ?

๋‹ต์€ ์—†์ง€๋งŒ ๊ฐœ์ธ ๋น„ ํŒ€์ด ๊ณ ๋ คํ•  ์šฐ๋ ค๋ฅผ ํ‘œ๋ช…ํ•ฉ๋‹ˆ๋‹ค.

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

๊ฐœ์ธ ๋น„๋ฅผ ์—…๋ฐ์ดํŠธ ํ•œ ํ›„์—๋„ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ „ ๋ฒ„์ „ ์ธ "gatsby": "^ 2.13.73"์œผ๋กœ ๋‹ค์šด ๊ทธ๋ ˆ์ด๋“œํ–ˆ๋Š”๋ฐ ์—ฌ๋Ÿฌ ๋ฒ„์ „์ด ๋Œ์•„ ์™”์ง€๋งŒ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค! npm์„ ์‚ฌ์šฉํ•˜์—ฌ ์ œ๊ฑฐํ•œ ๋‹ค์Œ react , react-dom ๋ฐ gatsby ๋ฅผ (๋‹ค์‹œ) ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ ์ •ํ™•ํ•œ ์ˆœ์„œ๋กœ ๊ทธ๊ฒƒ์„ํ–ˆ๋‹ค (๋‚˜๋Š” ์ˆœ์„œ๊ฐ€ ์ค‘์š” ํ•  ๊ฒƒ์ด๋ผ๊ณ  ๋ฏฟ์ง€ ์•Š๋Š”๋‹ค.

npm ls react ๋Š” ๋‘ ๊ฐ€์ง€ ๋ฒ„์ „์„ ํ‘œ์‹œํ•˜์ง€๋งŒ ๋™์ผํ•˜๋ฉฐ "์ค‘๋ณต ๋จ"์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

[email protected] <redacted the filepath>
โ”œโ”€โ”ฌ [email protected]
โ”‚ โ””โ”€โ”ฌ [email protected]
โ”‚   โ””โ”€โ”€ [email protected]  deduped
โ””โ”€โ”€ [email protected]

์ด๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌ!

๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค! npm์„ ์‚ฌ์šฉํ•˜์—ฌ ์ œ๊ฑฐํ•œ ๋‹ค์Œ react , react-dom ๋ฐ gatsby ๋ฅผ (๋‹ค์‹œ) ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ ์ •ํ™•ํ•œ ์ˆœ์„œ๋กœ ๊ทธ๊ฒƒ์„ํ–ˆ๋‹ค (๋‚˜๋Š” ์ˆœ์„œ๊ฐ€ ์ค‘์š” ํ•  ๊ฒƒ์ด๋ผ๊ณ  ๋ฏฟ์ง€ ์•Š๋Š”๋‹ค.

npm ls react ๋Š” ๋‘ ๊ฐ€์ง€ ๋ฒ„์ „์„ ํ‘œ์‹œํ•˜์ง€๋งŒ ๋™์ผํ•˜๋ฉฐ "์ค‘๋ณต ๋จ"์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

[email protected] <redacted the filepath>
โ”œโ”€โ”ฌ [email protected]
โ”‚ โ””โ”€โ”ฌ [email protected]
โ”‚   โ””โ”€โ”€ [email protected]  deduped
โ””โ”€โ”€ [email protected]

์œ„์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ์ด ์†”๋ฃจ์…˜์€ ์ €์—๊ฒŒ๋„ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

react ๋ฐ react-dom์„ 16.12.0์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•œ ๋‹ค์Œ gatsby๋ฅผ 2.18.7๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

์ค‘์š” : react, react-dom ๋ฐ gatsby๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•œ ํ›„ "gatsby clean"์„ ์‹คํ–‰ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

@clarmso๊ฐ€ ์ œ์•ˆํ•œ๋Œ€๋กœ gatsby๋ฅผ 2.18.7๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด ๋‚˜์—๊ฒŒ ํŠธ๋ฆญ์ด ์ƒ๊ฒผ ์Šต๋‹ˆ๋‹ค (๋ฐ˜์‘์€ 16.12.0 ์ž„).

๋˜ํ•œ ์ด์™€ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ˜์‘ ๋ฐ ๊ฐœ์ธ ๋น„๋ฅผ ์—…๋ฐ์ดํŠธํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์—…๋ฐ์ดํŠธ ํ›„ ์ฒญ์†Œ๋ฅผ ์‹œ๋„ํ–ˆ์ง€๋งŒ ๋ฌธ์ œ๊ฐ€ ์ง€์†๋ฉ๋‹ˆ๋‹ค.

"๊ฐœ์ธ ๋น„": "^ 2.18.11"
"๋ฐ˜์‘": "^ 16.12.0"
"react-dom": "^ 16.12.0"

๋˜ํ•œ ์ด์™€ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ˜์‘ ๋ฐ ๊ฐœ์ธ ๋น„๋ฅผ ์—…๋ฐ์ดํŠธํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์—…๋ฐ์ดํŠธ ํ›„ ์ฒญ์†Œ๋ฅผ ์‹œ๋„ํ–ˆ์ง€๋งŒ ๋ฌธ์ œ๊ฐ€ ์ง€์†๋ฉ๋‹ˆ๋‹ค.

"๊ฐœ์ธ ๋น„": "^ 2.18.11"
"๋ฐ˜์‘": "^ 16.12.0"
"react-dom": "^ 16.12.0"

์ €๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. yestarday๊ฐ€ ์ž˜ ์ž‘๋™ ํ•  ๋•Œ๊นŒ์ง€

๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค! npm์„ ์‚ฌ์šฉํ•˜์—ฌ ์ œ๊ฑฐํ•œ ๋‹ค์Œ react , react-dom ๋ฐ gatsby ๋ฅผ (๋‹ค์‹œ) ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ ์ •ํ™•ํ•œ ์ˆœ์„œ๋กœ ๊ทธ๊ฒƒ์„ํ–ˆ๋‹ค (๋‚˜๋Š” ์ˆœ์„œ๊ฐ€ ์ค‘์š” ํ•  ๊ฒƒ์ด๋ผ๊ณ  ๋ฏฟ์ง€ ์•Š๋Š”๋‹ค.

npm ls react ๋Š” ๋‘ ๊ฐ€์ง€ ๋ฒ„์ „์„ ํ‘œ์‹œํ•˜์ง€๋งŒ ๋™์ผํ•˜๋ฉฐ "์ค‘๋ณต ๋จ"์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

[email protected] <redacted the filepath>
โ”œโ”€โ”ฌ [email protected]
โ”‚ โ””โ”€โ”ฌ [email protected]
โ”‚   โ””โ”€โ”€ [email protected]  deduped
โ””โ”€โ”€ [email protected]

์ด๊ฒƒ์€ ๋‚˜์—๊ฒŒ๋„ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์˜๊ตฌ์  ์ธ ์ˆ˜์ •์„ ์œ„ํ•ด ์ž‘์—… ์ค‘์ž…๋‹ˆ๊นŒ?

์ด๋Ÿฌํ•œ ์—…๋ฐ์ดํŠธ๋กœ ์ธํ•ด ์ด์ œ StoreStateProvider์— ๋Œ€ํ•œ ๋” ์ด์ƒํ•œ ๊ฒฝ๊ณ ์™€ Contentful์˜ ์ž„์˜์˜ ํ•ญ๋ชฉ์ด ์กด์žฌํ•˜๋”๋ผ๋„ null๋กœ ๋Œ์•„์˜ต๋‹ˆ๋‹ค.

๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ์ง€๊ธˆ์€ ์ง€์ ์— ๋ณด๊ด€ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ์ด์™€ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ˜์‘ ๋ฐ ๊ฐœ์ธ ๋น„๋ฅผ ์—…๋ฐ์ดํŠธํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์—…๋ฐ์ดํŠธ ํ›„ ์ฒญ์†Œ๋ฅผ ์‹œ๋„ํ–ˆ์ง€๋งŒ ๋ฌธ์ œ๊ฐ€ ์ง€์†๋ฉ๋‹ˆ๋‹ค.

"๊ฐœ์ธ ๋น„": "^ 2.18.11"
"๋ฐ˜์‘": "^ 16.12.0"
"react-dom": "^ 16.12.0"

node_modules ํด๋” ๋ฐ package-lock.json ํŒŒ์ผ์„ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค. npm ์„ค์น˜๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๋‹ค์‹œ ๋ชจ๋‘ ์ข‹์Šต๋‹ˆ๋‹ค.

๋‚ด ๊ฒฝํ—˜์€ ์œ„์˜ ์˜๊ฒฌ์˜ ์กฐํ•ฉ์ด์—ˆ์Šต๋‹ˆ๋‹ค. node_modules ํด๋”๋ฅผ ์‚ญ์ œํ•˜๊ณ  gatsby ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— npm์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์›์‚ฌ ์„ค์น˜๊ฐ€ ๋งˆ์นจ๋‚ด ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

react , react-dom ๋ฐ gatsby ์„ (๋ฅผ) ๋‹ค์‹œ ์„ค์น˜ํ•˜์—ฌ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. (https://github.com/gatsbyjs/gatsby/issues/19827#issuecomment-559898690)

์ „์—

react v16.11.0
react-dom v16.11.0
gatsby v2.17.11

ํ›„

react v16.12.0
react-dom v16.12.0
gatsby v2.18.12

๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค! npm์„ ์‚ฌ์šฉํ•˜์—ฌ ์ œ๊ฑฐํ•œ ๋‹ค์Œ react , react-dom ๋ฐ gatsby ๋ฅผ (๋‹ค์‹œ) ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ ์ •ํ™•ํ•œ ์ˆœ์„œ๋กœ ๊ทธ๊ฒƒ์„ํ–ˆ๋‹ค (๋‚˜๋Š” ์ˆœ์„œ๊ฐ€ ์ค‘์š” ํ•  ๊ฒƒ์ด๋ผ๊ณ  ๋ฏฟ์ง€ ์•Š๋Š”๋‹ค.

npm ls react ๋Š” ๋‘ ๊ฐ€์ง€ ๋ฒ„์ „์„ ํ‘œ์‹œํ•˜์ง€๋งŒ ๋™์ผํ•˜๋ฉฐ "์ค‘๋ณต ๋จ"์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

[email protected] <redacted the filepath>
โ”œโ”€โ”ฌ [email protected]
โ”‚ โ””โ”€โ”ฌ [email protected]
โ”‚   โ””โ”€โ”€ [email protected]  deduped
โ””โ”€โ”€ [email protected]

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค ๐Ÿพ

๊ฐœ์ธ์ ์œผ๋กœ node_modules ํด๋”์™€ package-lock.json ์„ ์‚ญ์ œํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋Ÿฐ ๋‹ค์Œ react , react-dom ๋ฐ gatsby ์—…๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค.

"react": "^16.12.0",
"react-dom": "^16.12.0",
"gatsby": "^2.18.17",

์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ฒƒ์„ ์žŠ์ง€ ๋งˆ์„ธ์š” gatsby-cli ์ตœ์‹  ๋ฒ„์ „ ๋ฐ ์šด์˜ํ•˜๋Š” gatsby clean
๊ทธ ํ›„ gatsby develop ๊ฐ€ ๋งค๋ ฅ์ฒ˜๋Ÿผ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค!

๊ธฐ๋ณธ ๊ฐœ์ธ ๋น„ ๋กœ๊ฑฐ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋งŒ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ๋  ํŠน์ • ๋กœ๊ฑฐ๋Š” GATSBY_LOGGER ํ”„๋กœ์„ธ์Šค env ๋ฅผ ํ†ตํ•ด ์ œ์–ด๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด json ๋กœ๊ฑฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ๋ณธ ๋กœ๊ฑฐ๊ฐ€ ๋ณ€๊ฒฝ๋œ ๊ฒฝ์šฐ์ด ๋ฌธ์ œ๋Š” ์žฌํ˜„ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

export GATSBY_LOGGER=["json"]
npm i && npm run start 

yurnalist / json ์ „ํ™˜ํ•˜๋ฉด Gatsby ๋กœ๊ฑฐ ์ˆ˜์ • ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

export GATSBY_LOGGER=["yurnalist"]

์˜ค๋Š˜ ์ด์ „ ํ”„๋กœ์ ํŠธ์—์„œ gatsby develop ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค (์ตœ๊ทผ gatsby develop์„ ์‹คํ–‰ ํ•œ ๊ฒƒ์€ ๊ฐ€์„์ด์—ˆ์Šต๋‹ˆ๋‹ค).

์œ„์˜ (๋งค์šฐ ๋„์›€์ด๋˜๋Š”!) ์ œ์•ˆ์„ ์กฐํ•ฉํ•˜์—ฌ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ์ž‘๋™ํ–ˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. gatsby clean -๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.
  2. node_modules ์‚ญ์ œ
  3. npm install

์ด ์‹œ์ ์—์„œ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ์ด๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์กฐ์–ธ์„ ๋”ฐ๋ž์Šต๋‹ˆ๋‹ค.

  1. npm uninstall react react-dom gatsby
  2. npm install react react-dom gatsby

์ด๊ฒƒ์€ ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

package-lock.json ์‚ญ์ œ
์‚ญ์ œ ๋œ node_modules
npm i ์‹คํ–‰

๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ๋‹ค : D

๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค! npm์„ ์‚ฌ์šฉํ•˜์—ฌ ์ œ๊ฑฐํ•œ ๋‹ค์Œ react , react-dom ๋ฐ gatsby ๋ฅผ (๋‹ค์‹œ) ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ ์ •ํ™•ํ•œ ์ˆœ์„œ๋กœ ๊ทธ๊ฒƒ์„ํ–ˆ๋‹ค (๋‚˜๋Š” ์ˆœ์„œ๊ฐ€ ์ค‘์š” ํ•  ๊ฒƒ์ด๋ผ๊ณ  ๋ฏฟ์ง€ ์•Š๋Š”๋‹ค.

npm ls react ๋Š” ๋‘ ๊ฐ€์ง€ ๋ฒ„์ „์„ ํ‘œ์‹œํ•˜์ง€๋งŒ ๋™์ผํ•˜๋ฉฐ "์ค‘๋ณต ๋จ"์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

[email protected] <redacted the filepath>
โ”œโ”€โ”ฌ [email protected]
โ”‚ โ””โ”€โ”ฌ [email protected]
โ”‚   โ””โ”€โ”€ [email protected]  deduped
โ””โ”€โ”€ [email protected]

์†”๋ฃจ์…˜์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ์ด๊ฒƒ์€ ๋‚˜๋ฅผ์œ„ํ•œ ์ฃผ์š” ์ฐจ๋‹จ์ œ์˜€์Šต๋‹ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์ง€๋งŒ gatsby-cli ๋„ ๋‹ค์‹œ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ํ›„์—๋Š” ์ž˜ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ์ˆ 

Gatsby๋ฅผ 2.17.7์—์„œ 2.18.4๋กœ ์—…๋ฐ์ดํŠธ ํ•œ ํ›„ ๋ชจ๋“  ์ข…๋ฅ˜์˜ gatsby ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ง ๊ทธ๋Œ€๋กœ ๋ฌธ๋งฅ์ด ์—†์Šต๋‹ˆ๋‹ค.

> gatsby clean

The above error occurred in the <StoreStateProvider> component:
    in StoreStateProvider
    in App

React will try to recreate this component tree from scratch using the error boundary you provided, App.
Warning: App: Error boundaries should implement getDerivedStateFromError(). In that method, return a state update to display an error message or fallback UI.
> gatsby build

The above error occurred in the <StoreStateProvider> component:

...

ํ™˜๊ฒฝ

๋ถˆํ–‰ํžˆ๋„ ๋‹ค๋ฅธ ๋ช…๋ น๊ณผ ๋™์ผํ•œ StateStoreProvider ์˜ค๋ฅ˜์™€ ํ•จ๊ป˜ ์ถฉ๋Œํ•˜๋ฏ€๋กœ gatsby info --clipboard ์‹คํ–‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. Gatsby ๋ฒ„์ „์„ ๋‹ค์‹œ ๋˜๋Œ๋ฆฌ๊ณ ์ด ๋ช…๋ น์„ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ์ถœ๋ ฅ์˜ Gatsby ๋ฒ„์ „์€ ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์Šต๋‹ˆ๋‹ค .

  System:
    OS: Windows 10
    CPU: (8) x64 Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz
  Binaries:
    npm: 6.9.0 - C:\Program Files\nodejs\npm.CMD
  Languages:
    Python: 2.7.16 - C:\Python27\python.EXE
  Browsers:
    Edge: 44.18362.267.0
  npmPackages:
    gatsby: ^2.17.7 => 2.17.7
    gatsby-source-apiserver: ^2.1.4 => 2.1.4

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ์— ์ง๋ฉดํ–ˆ๋‹ค! ๋‚˜๋ฅผ ๋•๋Š” ์†”๋ฃจ์…˜์€ yarn์„ ์„ค์น˜ํ•˜๊ณ  package.json์— ํ•ด์ƒ๋„ ํ•„๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
https://yarnpkg.com/lang/en/docs/selective-version-resolutions/

์ด ์˜ค๋ฅ˜๋Š” gatsby-cli ๋‚ด๋ถ€์ ์œผ๋กœ react ์™€ ink ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋ Œ๋”๋ง ํ•œ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ์˜ react ๋ฒ„์ „๊ณผ gatsby ํ•„์š”ํ•œ ๋ฒ„์ „ ๊ฐ„์˜ ๋ฒ„์ „ ๊ด€๋ฆฌ๊ฐ€ ์ž˜๋ชป๋˜์–ด์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

์ „ ์„ธ๊ณ„์ ์œผ๋กœ gatsby-cli ์„ค์น˜ (๊ถŒ์žฅ)ํ•˜๋ฉด ๋‚ด๊ฐ€ ์•„๋Š” ํ•œ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ๋ฐฉ์ง€ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์ด๊ฒƒ๊ณผ ๊ด€๋ จํ•˜์—ฌ gatsby ์—์„œ ์ˆ˜์ •ํ•ด์•ผ ํ•  ๊ฒƒ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋‹ซ์Šต๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ๋ถ„ ๋ชจ๋‘ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ๐Ÿ’œ

์–ด์ œ ๋‚˜๋Š” deps๊ฐ€ ์‹ค๋กœ ์„ค์น˜ ๋  ๋•Œ ๊ฐœ์ธ ๋น„ ๋นŒ๋“œ / ๊ฐœ๋ฐœ์ด ์ž˜ ์ž‘๋™ํ•˜๋Š”์ง€ ์•Œ์•„ ๋‚ด๊ธฐ ์œ„ํ•ด ๋ฐ˜๋‚˜์ ˆ์„ ๋ณด๋ƒˆ๋‹ค.

ํšจ๊ณผ์ ์œผ๋กœ ์‹ค์„ ์‚ฌ์šฉํ•˜๋ฉด ๋‚˜๋„ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

npm update ๋งŒ ์‹คํ–‰ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

gatsby-cli๋ฅผ ์ „์—ญ์œผ๋กœ ์„ค์น˜ (๊ถŒ์žฅ)ํ•˜๋ฉด ๋‚ด๊ฐ€ ์•„๋Š” ํ•œ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ๋ฐฉ์ง€ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์ด๊ฒƒ๊ณผ ๊ด€๋ จํ•˜์—ฌ ๊ฐœ์ธ ๋น„์—์„œ ์ˆ˜์ •ํ•ด์•ผ ํ•  ๊ฒƒ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋‹ซ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์œ„์—์„œ ์–ธ๊ธ‰ ํ•œ๋Œ€๋กœ ๋กœ๊ฑฐ๋ฅผ yurnalist ๋˜๋Š” json ๋กœ ์ „ํ™˜ํ–ˆ์Šต๋‹ˆ๋‹ค. public , .cache ๋ฐ node_modules ํด๋”๋„ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ฐœ์ธ ๋น„ ๋ฒ„์ „์˜ ์ถœ๋ ฅ :

gatsby -v
Gatsby CLI version: 2.8.27
Gatsby version: 2.18.25

๊ถ๊ธˆํ•œ ๊ฒฝ์šฐ ๋‚ด ์ข…์†์„ฑ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    "dependencies": {
        "@emotion/core": "^10.0.27",
        "@emotion/styled": "^10.0.27",
        "gatsby": "^2.18.25",
        "gatsby-image": "^2.2.39",
        "gatsby-plugin-emotion": "^4.1.21",
        "gatsby-plugin-google-analytics": "^2.1.33",
        "gatsby-plugin-manifest": "^2.2.37",
        "gatsby-plugin-netlify": "^2.1.31",
        "gatsby-plugin-offline": "^3.0.32",
        "gatsby-plugin-react-helmet": "^3.1.21",
        "gatsby-plugin-sharp": "^2.3.13",
        "gatsby-plugin-web-font-loader": "^1.0.4",
        "gatsby-remark-images": "^3.1.42",
        "gatsby-remark-prismjs": "^3.3.30",
        "gatsby-remark-reading-time": "^1.1.0",
        "gatsby-source-filesystem": "^2.1.46",
        "gatsby-transformer-remark": "^2.6.48",
        "gatsby-transformer-sharp": "^2.3.13",
        "prism-themes": "^1.3.0",
        "prismjs": "^1.19.0",
        "prop-types": "^15.7.2",
        "react": "^16.12.0",
        "react-dom": "^16.12.0",
        "react-helmet": "^5.2.1",
        "typeface-karla": "0.0.72"
    },

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

gatsby develop

 ERROR 

The above error occurred in the <StoreStateProvider> component:
    in StoreStateProvider
    in App

React will try to recreate this component tree from scratch using the error boundary you provided, App.


 ERROR 

Warning: App: Error boundaries should implement getDerivedStateFromError(). In that method, return a state update to display an error message or fallback UI.


 ERROR 

UNHANDLED REJECTION Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:
1. You might have mismatching versions of React and the renderer (such as React DOM)
2. You might be breaking the Rules of Hooks
3. You might have more than one copy of React in the same app
See https://fb.me/react-invalid-hook-call for tips about how to debug and fix this problem.



  Error: Invalid hook call. Hooks can only be called inside of the body of a function component. This could   happen for one of the following reasons:
  1. You might have mismatching versions of React and the renderer (such as React DOM)
  2. You might be breaking the Rules of Hooks
  3. You might have more than one copy of React in the same app
  See https://fb.me/react-invalid-hook-call for tips about how to debug and fix this problem.

  - react.development.js:1590 resolveDispatcher
    [project]/[gatsby]/[react]/cjs/react.development.js:1590:13

  - react.development.js:1618 useState
    [project]/[gatsby]/[react]/cjs/react.development.js:1618:20

  - context.js:17 StoreStateProvider
    [project]/[gatsby]/[gatsby-cli]/lib/reporter/loggers/ink/context.js:17:41

  - react-reconciler.development.js:6036 renderWithHooks
    [project]/[react-reconciler]/cjs/react-reconciler.development.js:6036:18

  - react-reconciler.development.js:8570 mountIndeterminateComponent
    [project]/[react-reconciler]/cjs/react-reconciler.development.js:8570:13

  - react-reconciler.development.js:9938 beginWork$1
    [project]/[react-reconciler]/cjs/react-reconciler.development.js:9938:16

  - react-reconciler.development.js:11563 Object.invokeGuardedCallbackImpl
    [project]/[react-reconciler]/cjs/react-reconciler.development.js:11563:10

  - react-reconciler.development.js:11740 invokeGuardedCallback
    [project]/[react-reconciler]/cjs/react-reconciler.development.js:11740:31

  - react-reconciler.development.js:15778 beginWork$$1
    [project]/[react-reconciler]/cjs/react-reconciler.development.js:15778:7

  - react-reconciler.development.js:14696 performUnitOfWork
    [project]/[react-reconciler]/cjs/react-reconciler.development.js:14696:12

์• ์ดˆ์— ์กด์žฌํ•ด์„œ๋Š” ์•ˆ๋˜๋Š” ๋ฌธ์ œ๋ฅผ ์ฐพ๋Š” ํ•„์‚ฌ์  ์ธ ๊ฐœ๋ฐœ์ž์—๊ฒŒ :

-node_modules ํด๋” ์ œ๊ฑฐ
-package.lock.json ์‚ญ์ œ
-npm i ์‹คํ–‰

๋ณต์ œ ์ผ€์ด์Šค๋ฅผ ์†์— ๋„ฃ์€ ํ›„ :

NPM์€์˜ ์‚ฌ์šฉ์ž ์ •์˜ ๋ฒ„์ „ ์„ค์น˜์™€ ํ•จ๊ป˜์ด ์‚ฌ๊ฑด์—์„œ ์˜จ ๊ฒƒ์œผ๋กœ ๋ณด์ธ๋‹ค react ์•ˆ์— ์„ค์น˜๊ฐ€ node_modules ํ•˜๋ฉด์„œ, gatsby-cli ๋ฐ˜์‘์˜ ๋ฒ„์ „์— ์„ค์น˜๋ฉ๋‹ˆ๋‹ค node_modules/gatsby/node_modules .

ink ๊ฐ€ node_modules ์„ค์น˜๋˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ด๋ฏ€๋กœ ink react ๊ฐ€์ ธ ์˜ค๊ธฐ๋Š” gatsby-cli ๊ฐ€์ ธ ์˜ค๊ธฐ์™€ ๋‹ค๋ฅธ ๊ฐ€์ ธ ์˜ค๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

  1. ๋™์ผํ•œ ์•ฑ์— ๋‘˜ ์ด์ƒ์˜ React ์‚ฌ๋ณธ์ด์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    ์ด ๋ฌธ์ œ๋ฅผ ๋””๋ฒ„๊ทธํ•˜๊ณ  ์ˆ˜์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ํŒ์€ https://fb.me/react-invalid-hook-call ์„ ์ฐธ์กฐ

๊ทธ๋ฆฌ๊ณ  https://reactjs.org/warnings/invalid-hook-call-warning.html#duplicate -react๋Š” ์ด๊ฒƒ์„ ๊ฝค ์ž˜ ์„ค๋ช…ํ•˜์ง€๋งŒ ๊ฑฐ๊ธฐ์—์žˆ๋Š” ์ œ์•ˆ ( yarn resolutions ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๋ฌธ์ œ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค) npm ๊ฐ€ node_modules ๊ตฌ์กฐ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋ฉฐ ์‹ค์ด ์•„๋‹Œ)

์ง€๊ธˆ ๋‚ด ๋งˆ์Œ์— ๋– ์˜ค๋ฅด๋Š” ์œ ์ผํ•œ ํ•ด๊ฒฐ์ฑ…์€ Node.js ๋ชจ๋“ˆ ํ•ด์ƒ๋„๋ฅผ ์žฌ์ •์˜ํ•˜๊ณ  react ์„ gatsby-cli ์ •์˜ ๋œ ๊ฒƒ์œผ๋กœ ํ•˜๋“œ ์ฝ”๋”ฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒํ•ด๋„ ๊ดœ์ฐฎ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (PnP๊ฐ€ ์ ์–ด๋„ yarn v1์—์„œ ๊ตฌํ˜„๋˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค).

๋ช‡ ๊ฐ€์ง€ ๋” ์ƒ๊ฐํ•œ ํ›„-๋‹ค๋ฅธ ์˜ต์…˜์€ createRequireFromPath ์—์„œ gatsby-core-utils createRequireFromPath ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค (https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-core-utils/README .md # createrequirefrompath)๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  gatsby-cli์—์„œ ink ์™€ ๋™์ผํ•œ ๋ฒ„์ „์˜ ๋ฐ˜์‘์„๋กœ๋“œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค (์ด๋Š” ํ•ดํ‚ค๊ฐ€ ํ›จ์”ฌ ์ ๊ณ  Node.js ๋ชจ๋“ˆ ํ™•์ธ ์˜ค๋ฒ„๋กœ๋“œ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•  ์ˆ˜์žˆ๋Š” ์ž ์žฌ์  ๋ฌธ์ œ์˜ ๊ฐ€๋Šฅ์„ฑ์ด ์ ์Šต๋‹ˆ๋‹ค). .

์œ ์ผํ•œ ๋ฌธ์ œ๋Š” ํƒ€์‚ฌ ink ๊ตฌ์„ฑ ์š”์†Œ ( ink-spinner ๋Š” ํ˜„์žฌ ์‚ฌ์šฉ์ค‘์ธ ๊ตฌ์„ฑ ์š”์†Œ ์ค‘ ํ•˜๋‚˜์ž„)๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ink ๊ณผ ๋‹ค๋ฅธ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์„ค์น˜๋˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

ink-spinner ๋‚ด๋ถ€์—์„œ gatsby-cli ๊ณต๊ธ‰ํ•˜๊ณ  ํƒ€์‚ฌ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ํŒจํ‚ค์ง€๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋„๋กํ•˜์—ฌ ์ž ์žฌ์  ์ธ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (๋ฐ ๋ชจ๋‘ ๊ณต๊ธ‰ ์—…์ฒด).

--- ํŽธ์ง‘ :
์œ„์—์„œ์ฃผ์˜ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ink ์—๋Š” node >= 16.8.0 ์ด ํ•„์š”ํ•˜๋ฏ€๋กœ gatsby-cli ์—์„œ react >= 16.8.1 ์ดํ›„์˜ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋„๋กํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.- ๋” ๋งŽ์€ ์—ฐ๊ตฌ๊ฐ€ ํ•„์š”ํ•˜์ง€๋งŒ ์œ ๋งํ•ฉ๋‹ˆ๋‹ค.

์—…๋ฐ์ดํŠธ : createRequireFromPath ๊ฒฝ๋กœ๋ฅผํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค ์ผ ๋•Œ๋ฌธ์— npm ๊ทธ๋ƒฅ "์ œ๋Œ€๋กœ"ํ•ด๊ฒฐํ•  ์ˆ˜ node_modules ๊ณ„์ธต ๊ตฌ์กฐ๋Š” ์ฃผ์–ด์ง„ dependencies ๋ฐ peerDependencies ์ œ๊ณต : ink ๋ฐ gatsby-cli .

"๋น ๋ฅธ"๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ react ๋ฒ„์ „ ์š”๊ตฌ ์‚ฌํ•ญ (https://github.com/gatsbyjs/gatsby/pull/21522)์„ ๋‚ฎ์ถ”์–ด์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์‹œ๋‚˜๋ฆฌ์˜ค์˜ ์–‘์„ ์ค„์ด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์ด ์™„์ „ํžˆ ๊ณ ์ณ์ง€์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด npm node_modules ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ์ œ๋Œ€๋กœ ์ƒ์„ฑํ•˜์ง€ ๋ชปํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด react ๋ฒ„์ „์„ gatsby-cli ์— ๋ฒˆ๋“ค๋กœ ๋ฌถ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค (๋˜๋Š” Node.js ๋ชจ๋“ˆ ํ™•์ธ์„ ์žฌ์ •์˜ํ•˜์ง€๋งŒ ์ด๊ฒƒ์€ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ดˆ๋ž˜ํ•  ์ˆ˜์žˆ๋Š” ํ•ดํ‚น์ด๋ฏ€๋กœ ๋‹ค๋ฅธ ํ•ด๊ฒฐ์ฑ…์ด ์žˆ์œผ๋ฉด ํ”ผํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.)

๋˜ ๋‹ค๋ฅธ ์—…๋ฐ์ดํŠธ - ์šฐ๋ฆฌ๋Š” ์ผ๋ถ€ ์—…๋ฐ์ดํŠธํ–ˆ๋‹ค gatsby ๊ฐ€ ์ถœํŒ๋˜์—ˆ๋‹ค - ๊ทธ๊ฒƒ์˜ ์˜ํ–ฅ์„ ์ œํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ [email protected] -ํ•˜์ง€๋งŒ ์—ฌ์ „ํžˆ / ๋‹ค์‹œ ์‚ญ์ œํ•ด์•ผ ํ•  ์ˆ˜๋„ package-lock.json .

๊ทธ๋ž˜๋„ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์œผ๋ฉด react / react-dom ์ด (๊ฐ€) package.json ๊ณ ์ •๋˜์–ด ์žˆ๊ณ  ๋ฒ„์ „์ด [email protected] ๋ณด๋‹ค ๋‚ฎ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.- ์šฐ๋ฆฌ๊ฐ€ ์•„์ง ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ์ˆ˜์ •์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š์ง€๋งŒ ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ์กฐ์‚ฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค - ๊ฐ€๋Šฅํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ์‚ฌ์šฉ yarn ๋Œ€์‹  npm ์ง€๊ธˆ (ํ™•์ธ๋˜์ง€ ์•Š์Œ).

๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๊ธฐ์ˆ ์  ์ธ ๊ฒƒ์— ๊ด€์‹ฌ์ด ์žˆ๋‹ค๋ฉด ์ดˆ๊ธฐ Pull Request์— ๋Œ€ํ•œ ์˜๊ฒฌ์„ ํ™•์ธ ํ•˜์‹ญ์‹œ์˜ค -https://github.com/gatsbyjs/gatsby/pull/21508#issuecomment -586753917 ํ˜„์žฌ ๊ณ„ํš์€ ์ผ๋ถ€ ๋ฒˆ ๋“ค๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค (์•„๋งˆ microbundle ) ๋ฒˆ๋“คํ•˜๊ธฐ react ์—์„œ gatsby-cli ๊ฐ€ ์‚ฌ์šฉํ•˜๋ ค๊ณ ํ•˜์ง€ ์•Š๋„๋ก react ์—์„œ node_modules ๋‹ค๋งŒ์ด์žˆ์„ ๊ฒƒ์ด๋‹ค gatsby-cli ์ง์ ‘ ํฌํ•จ)

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

๋‚ด ์„ค์ • :

Win10, .msi๋ฅผ ํ†ตํ•ด ์„ค์น˜๋œ Yarn, yarn global ๋ฅผ ํ†ตํ•ด Gatsby. ๋ชจ๋“  Gatsby ํ”„๋กœ์ ํŠธ์— yarn ์‚ฌ์šฉ.

๋ฌธ์ œ:

gatsby {command} ๋Š” StoreStateProvider ์˜ค๋ฅ˜๋ฅผ ์ƒ์„ฑํ•˜์ง€๋งŒ npx gatsby {command} ๋Š” ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ์ฑ…:

  1. .cache ๋ฐ /node_modules ์žˆ์œผ๋ฉด ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.
  2. react ๋ฐ react-dom ์ด (๊ฐ€)์ด ๊ธ€์„ ์“ฐ๋Š” ์‹œ์ ์—์„œ "^16.13.0" ์—…๋ฐ์ดํŠธ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  3. yarn global remove gatsby gatsby-cli ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์†์ƒ๋œ CLI๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
  4. yarn global add gatsby gatsby-cli ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ CLI๋ฅผ ๋‹ค์‹œ ์„ค์น˜ํ•˜์‹ญ์‹œ์˜ค.
  5. gatsby -v ๋˜๋Š” ๋‹ค๋ฅธ gatsby {command} ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์‚ฐ์ถœ:

> gatsby -v
Gatsby CLI version: 2.9.0
Gatsby version: 2.19.23

ํžˆ์•ผ!

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

๋งŽ์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฏ€๋กœ ํ˜„์žฌ 30 ์ผ ๋™์•ˆ ํ™œ๋™์ด ์—†์œผ๋ฉด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๋งˆ์ง€๋ง‰์œผ๋กœ ์—…๋ฐ์ดํŠธ ํ•œ ์ง€ 20 ์ผ์ด ์ง€๋‚ฌ์Šต๋‹ˆ๋‹ค.
์ด ๋ฌธ์ œ๋ฅผ ๋†“์ณค๊ฑฐ๋‚˜ ๊ณ„์† ์—ด๋ ค๊ณ  ์‹ถ๋‹ค๋ฉด ์—ฌ๊ธฐ์—์„œ ๋‹ต์žฅ ํ•ด์ฃผ์„ธ์š”. ์ด ๋ฌธ์ œ๋ฅผ ๊ณ„์† ์—ด์–ด๋‘๊ธฐ ์œ„ํ•ด "๋ถ€์‹คํ•˜์ง€ ์•Š์Œ"์ด๋ผ๋Š” ๋ ˆ์ด๋ธ”์„ ์ถ”๊ฐ€ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ๋ฌธ์ œ ๋‚˜ ๋‹ค๋ฅธ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์€ Pull Request๋ฅผ ์—ฌ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. PR ์—ด๊ธฐ, ๋ฌธ์ œ ๋ถ„๋ฅ˜ ๋ฐ ๊ธฐ์—ฌ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋Š” gatsby.dev/contribute ๋ฅผ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค!

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

ํ™œ๋™์ด๋ณ„๋กœ ์—†์ง€๋งŒ ๋‚ก์€ ๊ฒƒ ๊ฐ™์ง„ ์•Š๋„ค์š”

๋‚˜๋Š”์ด ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๊ฒช๊ณ  ์žˆ์—ˆ๋Š”๋ฐ, ๋‚ด๊ฐ€ ํ•œ ์ผ์€ json.lock์„ ์‚ญ์ œํ•˜๊ณ  yarn ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ ์ข…์†์„ฑ์„ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฒƒ์ด ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•˜๊ฒŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

"node_modules"ํด๋”์™€ "package-lock.json"ํŒŒ์ผ์„ ์‚ญ์ œ ํ•œ ๋‹ค์Œ "npm install"๋ช…๋ น์„ ์‚ญ์ œํ•˜์—ฌ ํ•ด๊ฒฐ ํ•œ ๊ฒƒ๊ณผ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

ํžˆ์•ผ!

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

๋งŽ์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฏ€๋กœ ํ˜„์žฌ 30 ์ผ ๋™์•ˆ ํ™œ๋™์ด ์—†์œผ๋ฉด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๋งˆ์ง€๋ง‰์œผ๋กœ ์—…๋ฐ์ดํŠธ ํ•œ ์ง€ 20 ์ผ์ด ์ง€๋‚ฌ์Šต๋‹ˆ๋‹ค.
์ด ๋ฌธ์ œ๋ฅผ ๋†“์ณค๊ฑฐ๋‚˜ ๊ณ„์† ์—ด๋ ค๊ณ  ์‹ถ๋‹ค๋ฉด ์—ฌ๊ธฐ์—์„œ ๋‹ต์žฅ ํ•ด์ฃผ์„ธ์š”. ์ด ๋ฌธ์ œ๋ฅผ ๊ณ„์† ์—ด์–ด๋‘๊ธฐ ์œ„ํ•ด "๋ถ€์‹คํ•˜์ง€ ์•Š์Œ"์ด๋ผ๋Š” ๋ ˆ์ด๋ธ”์„ ์ถ”๊ฐ€ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ๋ฌธ์ œ ๋‚˜ ๋‹ค๋ฅธ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์€ Pull Request๋ฅผ ์—ฌ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. PR ์—ด๊ธฐ, ๋ฌธ์ œ ๋ถ„๋ฅ˜ ๋ฐ ๊ธฐ์—ฌ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋Š” gatsby.dev/contribute ๋ฅผ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค!

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

๋˜ ์•ˆ๋…•!

์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚œ ์ง€ 30 ์ผ์ด ์ง€๋‚ฌ์œผ๋ฏ€๋กœ ์šฐ๋ฆฌ์˜ ์นœ์ ˆํ•œ ์ด์›ƒ ๋กœ๋ด‡ (๋‚˜์•ผ!)์ด ๋ฌธ์„ ๋‹ซ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ €๋Š” ๋กœ๋ด‡ ์ผ ๋ฟ์ด๋ฏ€๋กœ์ด ๋ฌธ์ œ๋ฅผ ์‹ค์ˆ˜๋กœ ์ข…๋ฃŒํ–ˆ๋‹ค๋ฉด HUMAN_EMOTION_SORRY ์ž…๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ๋‹ค์‹œ ์—ด๊ฑฐ ๋‚˜ ๋‹ค๋ฅธ ๊ฒƒ์ด ํ•„์š”ํ•˜๋ฉด ์ƒˆ ๋ฌธ์ œ๋ฅผ ๋งŒ๋“œ์‹ญ์‹œ์˜ค.
์ด ๋ฌธ์ œ ๋‚˜ ๋‹ค๋ฅธ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์€ Pull Request๋ฅผ ์—ฌ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. PR ์—ด๊ธฐ, ๋ฌธ์ œ ๋ถ„๋ฅ˜ ๋ฐ ๊ธฐ์—ฌ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋Š” gatsby.dev/contribute ๋ฅผ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค!

Gatsby ์ปค๋ฎค๋‹ˆํ‹ฐ์— ์ฐธ์—ฌํ•ด ์ฃผ์…”์„œ ๋‹ค์‹œ ํ•œ ๋ฒˆ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ๐Ÿ’ช๐Ÿ’œ

: slightly_frowning_face : ์ €๋Š” ์—ฌ์ „ํžˆ yurnalist ์„ ๊ธฐ๋ณธ ๋กœ๊ฑฐ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์ด ์ˆ˜์ •๋˜์—ˆ๋‹ค๋Š” ์—…๋ฐ์ดํŠธ๋ฅผ ๋ณด์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

์• ์ดˆ์— ์กด์žฌํ•ด์„œ๋Š” ์•ˆ๋˜๋Š” ๋ฌธ์ œ๋ฅผ ์ฐพ๋Š” ํ•„์‚ฌ์  ์ธ ๊ฐœ๋ฐœ์ž์—๊ฒŒ :

-node_modules ํด๋” ์ œ๊ฑฐ
-package.lock.json ์‚ญ์ œ
-npm i ์‹คํ–‰

์ด๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค ...

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

์‹ค ์„ค์น˜๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

๊ทธ๋ž˜์„œ ๋‚ด๊ฐ€ ํ•œ ์ผ์€ (์ง€๊ธˆ๊นŒ์ง€ ๋ชจ๋“  ๊ฒƒ์„ ์ฝ์€ ํ›„) Gatsby 2.18.7์˜ package.json ํŒŒ์ผ์—์„œ ๋ฒ„์ „์„ ๋ณ€๊ฒฝํ•˜๊ณ  npm i ํ–ˆ์Šต๋‹ˆ๋‹ค.

์—ฌ์ „ํžˆ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

$: gatsby -v
Gatsby CLI version: 2.12.66
Gatsby version: 2.23.12

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

  1. gatsby new ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๊ธฐ
  2. npm i --save node-sass gatsby-plugin-sass ์‚ฌ์šฉํ•˜์—ฌ sass ์„ค์น˜
  3. gatsby develop

๊ฒฐ๊ณผ

$ gatsby develop

 ERROR

The above error occurred in the <StoreStateProvider> component:
    in StoreStateProvider
    in App

React will try to recreate this component tree from scratch using the error boundary you provided, App.


 ERROR

Warning: App: Error boundaries should implement getDerivedStateFromError(). In that method, return a state update to display an error message or fallback UI.


 ERROR

UNHANDLED REJECTION Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:
1. You might have mismatching versions of React and the renderer (such as React DOM)
2. You might be breaking the Rules of Hooks
3. You might have more than one copy of React in the same app
See https://fb.me/react-invalid-hook-call for tips about how to debug and fix this problem.



  Error: Invalid hook call. Hooks can only be called inside of the body of a fun  ction component. This could happen for one of the following reasons:
  1. You might have mismatching versions of React and the renderer (such as Reac  t DOM)
  2. You might be breaking the Rules of Hooks
  3. You might have more than one copy of React in the same app
  See https://fb.me/react-invalid-hook-call for tips about how to debug and fix   this problem.

  - react.development.js:1465 resolveDispatcher
    [bug]/[gatsby]/[react]/cjs/react.development.js:1465:13

  - react.development.js:1496 useState
    [bug]/[gatsby]/[react]/cjs/react.development.js:1496:20

  - context.js:21 StoreStateProvider
    [bug]/[gatsby]/[gatsby-cli]/lib/reporter/loggers/ink/context.js:21:49

  - react-reconciler.development.js:6036 renderWithHooks
    [bug]/[ink]/[react-reconciler]/cjs/react-reconciler.development.js:6036:18

  - react-reconciler.development.js:8570 mountIndeterminateComponent
    [bug]/[ink]/[react-reconciler]/cjs/react-reconciler.development.js:8570:13

  - react-reconciler.development.js:9938 beginWork$1
    [bug]/[ink]/[react-reconciler]/cjs/react-reconciler.development.js:9938:16

  - react-reconciler.development.js:11563 Object.invokeGuardedCallbackImpl
    [bug]/[ink]/[react-reconciler]/cjs/react-reconciler.development.js:11563:10

  - react-reconciler.development.js:11740 invokeGuardedCallback
    [bug]/[ink]/[react-reconciler]/cjs/react-reconciler.development.js:11740:31

  - react-reconciler.development.js:15778 beginWork$$1
    [bug]/[ink]/[react-reconciler]/cjs/react-reconciler.development.js:15778:7

  - react-reconciler.development.js:14696 performUnitOfWork
    [bug]/[ink]/[react-reconciler]/cjs/react-reconciler.development.js:14696:12

์œ„์—์„œ ์„ค๋ช…ํ•œ๋Œ€๋กœ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ์ง€์นจ์„ ๊ตฌํ˜„ํ•˜์—ฌ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. โ˜๏ธ

๊ทธ๋ž˜์„œ ๋‚ด๊ฐ€ ํ•œ ์ผ์€ (์ง€๊ธˆ๊นŒ์ง€ ๋ชจ๋“  ๊ฒƒ์„ ์ฝ์€ ํ›„) Gatsby 2.18.7์˜ package.json ํŒŒ์ผ์—์„œ ๋ฒ„์ „์„ ๋ณ€๊ฒฝํ•˜๊ณ  ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.
npm i ํšจ๊ณผ๊ฐ€ ์žˆ์Œ

.cache ๋ฐ node_modules ํด๋”์™€ package-lock.json์„ ์ œ๊ฑฐํ•œ ๋‹ค์Œ ๋‹ค์‹œ ์„ค์น˜ํ•˜๋ฉด ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์‹ค์„ ์—…๊ทธ๋ ˆ์ด๋“œํ–ˆ๊ณ  ๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค.

node_modules , npm ์บ์‹œ ๋ฐ package-lock.json ํŒŒ์ผ์„ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์€ ํ”Œ๋Ÿฌ๊ทธ์ธ ๋˜๋Š” ์ข…์†์„ฑ์ด ์ถ”๊ฐ€ ๋  ๋•Œ๋งˆ๋‹ค ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ๋น„์‹ค์šฉ์  ์ธ ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค.

๋‚ด ๊ฒฝ์šฐ์˜ ๊ทผ๋ณธ์ ์ธ ๋ฌธ์ œ๋Š” gatsby new [path] [starter] ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ๋น„์ €๋‹ ๋œ ์ƒˆ ํ”„๋กœ์ ํŠธ๊ฐ€ yarn ๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ๊ณ  ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ์ข…์†์„ฑ์„ ๋ถ€ํŠธ ์ŠคํŠธ๋žฉํ•˜๊ธฐ ์œ„ํ•ด ์•”์‹œ ์ ์œผ๋กœ yarn ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค ( which yarn ๋ฐ˜ํ™˜ ๋น„์–ด ์žˆ์ง€ ์•Š์€ ๋ฌธ์ž์—ด). npm ๋ฐ yarn ์€ (๋Š”) ์ƒํ˜ธ ๋ฐฐํƒ€์  ์ธ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ ์†”๋ฃจ์…˜์ด๊ธฐ ๋•Œ๋ฌธ์— npm ์„ (๋ฅผ) ์‚ฌ์šฉํ•˜์—ฌ ํ”Œ๋Ÿฌ๊ทธ์ธ / ์ข…์†์„ฑ์„ ์„ค์น˜ํ•˜๋ ค๋Š” ํ›„์† ์‹œ๋„๋Š” ์œ„์— ๊ฒŒ์‹œ ๋œ ๊ฒƒ์ฒ˜๋Ÿผ ์•”ํ˜ธ ์˜ค๋ฅ˜์™€ ํ•จ๊ป˜ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

gatsby cli๊ฐ€์ด๋ฅผ ์š”์ฒญํ•˜๋Š” ๋ช…๋ น ์ค„ ์˜ต์…˜์—†์ด yarn ๋ฅผ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์„ค์ • ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๋‚˜๋ฅผ์œ„ํ•œ ํ•ด๊ฒฐ์ฑ…์€ yarn ์„ npm ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋กํ•˜๋Š” ๊ฒƒ์ด ์—ˆ์Šต๋‹ˆ๋‹ค.

https://github.com/gatsbyjs/gatsby/pull/26887 ์ œ๊ฑฐ (๋ณ‘ํ•ฉ ์–ด์ œ ๋ฐœํ‘œ ์˜ค๋Š˜) react ์˜ ์ข…์†์—์„œ gatsby-cli ์šฐ๋ฆฌ๋Š” ํŒจํ‚ค์ง€๋ฅผ ๊ฒŒ์‹œ ํ•  ๋•Œ ๋Œ€์‹ ํ•˜๊ณ  ๊ทธ๊ฒƒ์„ ๋ฒˆ๋“ค - ์–ด๋–ค์ด ์˜๋ฏธ๋Š” ๋ชจ๋“  ์ข…๋ฅ˜์˜ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ค๋Š” node_modules ์—์„œ react ์˜ ์ด์ƒํ•œ ์—ฌ๋Ÿฌ ๋ณต์‚ฌ๋ณธ์ด ์ƒ์„ฑ๋˜์ง€ ์•Š์•„์•ผํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@ duchess-toffee https://github.com/gatsbyjs/gatsby/pull/26856 ํฅ๋ฏธ๋กœ์šด ๊ฒƒ์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (์•„์ง ๋ณ‘ํ•ฉ / ์ถœ์‹œ๋˜์ง€ ์•Š์Œ)- yarn ์—์„œ npm ์ž๋™ ๋ณต๊ท€๋˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. gatsby options set pm npm ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ์™€ ๊ด€๋ จ๋œ ๊ฒƒ์œผ๋กœ ๋ณด์ด๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. # 26998

์‚ฌ์šฉ์ž ์ •์˜ ์›นํŒฉ ๊ตฌ์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ react ํ•ด๊ฒฐ :

````js
// ํŒŒ์ผ : gatsby-node.js
const ๊ฒฝ๋กœ = require ( 'path')

module.exports = {
onCreateWebpackConfig : ({์ž‘์—…}) => {
actions.setWebpackConfig ({
ํ•ด๊ฒฐ : {
๋ณ„์นญ : {
'๋ฐ˜์‘': path.resolve (path.join (__ dirname, 'node_modules', 'react'))
}
}
})
}
}
````

json // file: package.json { "dependencies": { "@mdx-js/mdx": "^1.6.18", "@mdx-js/react": "^1.6.18", "gatsby": "^2.24.64", "gatsby-plugin-layout": "^1.3.11", "gatsby-plugin-mdx": "^1.2.40", "gatsby-plugin-sass": "^2.3.12", "gatsby-source-filesystem": "^2.3.30", "gatsby-telemetry": "^1.3.35", "node-sass": "^4.14.1", "react": "^16.13.1", "react-dom": "^16.13.1", "react-ionicons-v5": "^1.2.0", "three": "^0.120.1" } }

์ด์ œ ๋ชจ๋“  ๊ฒƒ์ด ์›ํ™œํ•˜๊ฒŒ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

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