Gatsby: ์•Œ ์ˆ˜์—†๋Š” ์œ ํ˜• "ContentfulFixed". "ContentfulBlogPost", "ContentfulContentType"๋˜๋Š” "ContentfulBlogPostEdge"๋ฅผ ์˜๋ฏธ ํ–ˆ์Šต๋‹ˆ๊นŒ?

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

์˜ค๋ฅ˜ # 85901 GRAPHQL

์ฝ˜ํ…์ธ ๊ฐ€ ๋งŽ์€ ๋ธ”๋กœ๊ทธ์—์„œ ๋‚ด ๋ธ”๋กœ๊ทธ๋ฅผ ๊ฐ€์ ธ ์˜ค๋ ค๊ณ ํ•˜๋Š”๋ฐ ์ด์ƒํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
์ด ๋ฌธ์ œ๋ฅผ ์—ฌ๋Š” ์œ ์ผํ•œ ์ด์œ ๋Š” ์˜ค๋ฅ˜๊ฐ€ ๋‚ด๊ฒŒ ๊ทธ๋ ‡๊ฒŒ ๋งํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์˜ค๋ฅ˜๊ฐ€ ๋งํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์˜ค๋ฅ˜ :์ด StaticQuery์˜ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

"์ด๊ฒƒ์€ Gatsby์˜ ๋ฒ„๊ทธ ์ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ ํŽ˜์ด์ง€๋ฅผ ์ƒˆ๋กœ ๊ณ ์นจํ•ด๋„ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์œผ๋ฉด https://github.com/gatsbyjs/gatsby/issues ์—์„œ ๋ฌธ์ œ๋ฅผ์—ฌ์„ธ์š”."

๊ฐœ์ธ ๋น„ ์ •๋ณด ์ถœ๋ ฅ :

์ฒด๊ณ„:
์šด์˜์ฒด์ œ : Windows 10
CPU : (8) x64 Intel (R) Core (TM) i7-3632QM CPU @ 2.20GHz
๋ฐ”์ด๋„ˆ๋ฆฌ :
npm : 6.9.0-C : \ Program Filesnodejsnpm.CMD
์–ธ์–ด :
ํŒŒ์ด์ฌ : 3.7.2
๋ธŒ๋ผ์šฐ์ € :
๊ฐ€์žฅ์ž๋ฆฌ : 44.18362.1.0
npm ํŒจํ‚ค์ง€ :
๊ฐœ์ธ ๋น„ : ^ 2.13.51 => 2.13.51
gatsby-plugin-sass : ^ 2.1.4 => 2.1.4
gatsby-plugin-sharp : ^ 2.2.10 => 2.2.10
๊ฐœ์ธ ๋น„ ๋ฐœ์–ธ ์ด๋ฏธ์ง€ : ^ 3.1.7 => 3.1.7
๊ฐœ์ธ ๋น„ ๋ฐœ์–ธ ์ƒ๋Œ€ ์ด๋ฏธ์ง€ : ^ 0.2.3 => 0.2.3
gatsby-source-contentful : ^ 2.1.18 => 2.1.18
๊ฐœ์ธ ๋น„ ์†Œ์Šค ํŒŒ์ผ ์‹œ์Šคํ…œ : ^ 2.1.9 => 2.1.9
๊ฐœ์ธ ๋น„ ๋ณ€์••๊ธฐ ๋ฐœ์–ธ : ^ 2.6.11 => 2.6.11

์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์€ ๊ฑฐ๋ถ€

์˜ค๋ฅ˜ : ์‹œ์Šคํ…œ์ด ์ง€์ •๋œ ๊ฒฝ๋กœ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

  • envinfo.js : 1 Function.e.exports.sync
    [v12.0.0] / [gatsby-cli] / [envinfo] /dist/envinfo.js:1:4908

  • envinfo.js : 1 Object.copySync
    [v12.0.0] / [gatsby-cli] / [envinfo] /dist/envinfo.js:1:66886

  • envinfo.js : 1 Object.t.writeSync
    [v12.0.0] / [gatsby-cli] / [envinfo] /dist/envinfo.js:1:48715

  • envinfo.js : 1
    [v12.0.0] / [gatsby-cli] / [envinfo] /dist/envinfo.js:1:46872

  • envinfo.js : 1
    [v12.0.0] / [gatsby-cli] / [envinfo] /dist/envinfo.js:1:46887

  • task_queues.js : 88 processTicksAndRejections
    internal / process / task_queues.js : 88 : 5

needs reproduction GraphQL bug

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

๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€์žˆ๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•˜๊ฑฐ๋‚˜ ํŒจํ‚ค์ง€๋ฅผ ๋‹ค์šด ๊ทธ๋ ˆ์ด๋“œํ•˜์ง€ ์•Š๊ณ  ๋‚ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

  1. ์ฝ˜ํ…์ธ ๊ฐ€์žˆ๋Š” ๊ณต๊ฐ„์œผ๋กœ ์ด๋™
  2. '๋ฏธ๋””์–ด'ํƒญ์„ ํด๋ฆญํ•˜๊ณ  ๋‹จ์ผ ์ž์‚ฐ์„ ๋”๋ฏธ ์ด๋ฏธ์ง€๋กœ ์ถ”๊ฐ€ํ•˜์—ฌ ์ž๋ฆฌ ํ‘œ์‹œ ์ž ์—ญํ• ์„ํ•ฉ๋‹ˆ๋‹ค.
  3. npm run develop ๋˜๋Š” gatsby develop ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ dev ์„œ๋ฒ„๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

๋ฐ”๋ผ๊ฑด๋Œ€, ์ด๊ฒƒ์ด ๋‹น์‹ ์˜ ๋ฌธ์ œ๋„ ํ•ด๊ฒฐํ•˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€ ์ด๊ฒƒ์ด ์™œ ๊ทธ๋Ÿฐ์ง€ ์šฐ๋ฆฌ์—๊ฒŒ ์•Œ๋ ค์ค„ ์ˆ˜ ์žˆ๋‹ค๋ฉด ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

์•ˆ๋…•ํ•˜์„ธ์š” @ EdinK1 ,์ด ์ฝ”๋“œ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ ์ €์žฅ์†Œ๋ฅผ ๊ณต์œ ํ•˜์—ฌ ๋” ์ž์„ธํžˆ ์‚ดํŽด ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ ? ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด ์ด๊ฒƒ์„ ๋ณต์ œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์•ˆ๋…•ํ•˜์„ธ์š” @lannonbr . ๋ฌผ๋ก  ์—ฌ๊ธฐ์— ๋‚ด ์ €์žฅ์†Œ์— ๋Œ€ํ•œ ๋งํฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๋Š” gatsbty-source-contenful ํด๋”์˜ fragments.js์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋…ธ๋“œ ๋ชจ๋“ˆ ํด๋”๋ฅผ gitignoredํ–ˆ์Šต๋‹ˆ๋‹ค. ๋…ธ๋“œ ๋ชจ๋“ˆ๋„ ์‚ดํŽด ๋ด์•ผํ•œ๋‹ค๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”.

๋‚˜๋Š” ๋˜ํ•œ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ํŠœํ† ๋ฆฌ์–ผ https://www.youtube.com/watch?v=8t0vNu2fCCM&t=13486s ๋ฅผ ๋”ฐ๋ฅด๊ณ  ์žˆ์—ˆ๊ณ  blog.js์— ์ฟผ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ ค๊ณ  ํ•  ๋•Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ƒํ•œ ์ ์€ ์ด์ „์— graphi์—์„œ ์ž‘๋™ํ–ˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

https://itnext.io/content-management-with-gatsby-netlify-and-contentful-70f03de41602 ๋ฅผ ๋”ฐ๋ฅด๋Š” ๋™์•ˆ์ด ์˜ค๋ฅ˜๋ฅผ ์žฌํ˜„ ํ•  ์ˆ˜

node_modules / gatsby-source-contentful / sec / fragments.js๋ฅผ ์‚ญ์ œํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ "์ˆ˜์ •"๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ํ , ๋„ค ๋‚˜์—๊ฒŒ๋„ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ๋ฒ•์ธ์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ์–ด์จŒ๋“  ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

๋น„์Šทํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์กฐ๊ฐ ํŒŒ์ผ ์‚ญ์ œ๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์•„๋ฌด๋„ ์•„์ง ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์•˜์Šต๋‹ˆ๊นŒ?

์กฐ๊ฐ ํŒŒ์ผ์„ ์‚ญ์ œํ•˜๋ฉด ํŠธ๋ฆญ์„ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„œ๋ฒ„๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์‹ญ์‹œ์˜ค.

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

์—ฌ๊ธฐ์—๋„ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฝ˜ํ…์ธ ๊ฐ€ ๋งŽ์€ ์ด๋ฏธ์ง€์˜ ๋ฌธ์ œ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

export const mainQuery = graphql`
  query {
    contents: allContentfulContents {
      edges {
        node {
          slug
          title
          content {
            json
          }
          cover {
            fluid {
              ...GatsbyContentfulFluid_noBase64
            }
          }
          gallery {
            id
            fluid {
              src
            }
          }
        }
      }
    }
  }
`

์ปจํ…์ธ ๊ฐ€ ๋งŽ์€ ์กฐ๊ฐ์„ ๋ชจ๋‘ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

export const query = graphql`
  query {
    contentfulBlogPost {
      title
      publishedDate
      body {
        json
      }
    }
  }
`

์ฝ˜ํ…์ธ ๊ฐ€ ๋งŽ์€ ๋ธ”๋กœ๊ทธ์˜ ๋ชจ๋“  ์ด๋ฏธ์ง€์™€ ์ฝ˜ํ…์ธ ๊ฐ€ ์—ฌ๊ธฐ์— ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. (๋ณธ๋ฌธ {json})

์—…๋ฐ์ดํŠธ : gatsby-source-contentful์„ ์—…๋ฐ์ดํŠธ ํ•œ ํ›„ ๋ฒ„๊ทธ๊ฐ€ ์‚ฌ๋ผ์ง„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ ์–ด๋„ ์ง€๊ธˆ ๋‚ด ์ด๋ฏธ์ง€๋ฅผ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด์ „์— ๋™์ผํ•œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ํ•ด๋‹น ์˜ค๋ฅ˜๋Š” Gatsby์—์„œ ์ œ๊ณต ํ•œ ๊ฒƒ์ด๋ฉฐ ์—ฌ๊ธฐ์— ํ•ด๋‹น ์˜ค๋ฅ˜์— ๋Œ€ํ•ด github์— ๊ฒŒ์‹œํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๊ฐ€์ง€๊ณ ์žˆ๋‹ค.

๊ฐœ์ธ ๋น„ @ 2.13.59
[email protected]
[email protected] ( ์ด์ „ ๋ฒ„์ „๋„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ๋™์ผํ•œ ๋ฌธ์ œ )

๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฐœ์ธ ๋น„ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.
gatsby new great_gatsby_bootcamp https://github.com/gatsbyjs/gatsby-starter-hello-world

[email protected] ์„ค์น˜ ๋ฐ ํ™˜๊ฒฝ ์„ค์ • ๋ณ€์ˆ˜๋Š” README.md์— ์„ค๋ช…๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ„๋‹จํ•œ ์ฝ˜ํ…์ธ  ๋ชจ๋ธ ์ƒ์„ฑ :
content-model

์ผ๋ถ€ ์ฝ˜ํ…์ธ ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  gatsby develop ์‹คํ–‰ ํ›„ ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
output.txt

๊ฑฐ์˜ ๊ธฐ๋ณธ ๊ตฌ์„ฑ์—์„œ ํŠน๋ณ„ํ•œ ๊ฒƒ์€ ์—†์Šต๋‹ˆ๋‹ค.

localhost : 8000์˜ React ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ž‘๋™ํ•˜์ง€ ์•Š์œผ๋ฉฐ graphql ๋†€์ดํ„ฐ์—์„œ ์ฝ˜ํ…์ธ ๊ฐ€ ๋งŽ์€ ์ฟผ๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด gatsby-source-contentful์„ ๋ฒ„์ „ 2.1.19๋กœ ๋‹ค์‹œ ์„ค์น˜ํ•ด๋ณด์‹ญ์‹œ์˜ค.
npm install --save gatsby-source-contentful

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

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

๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

  1. gatsby-source-contentful node_modules์—์„œ fragments.js ์‚ญ์ œ
  2. ์—…๋ฐ์ดํŠธ ๋œ gatsby-cli
  3. ์บ์‹œ npm run clean
  4. gatsby develop ์‹œ๋„ํ–ˆ์ง€๋งŒ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค (๋‹ค๋ฅธ ํฌ๋Ÿผ์—์„œ๋Š” ์ผ๋ถ€ ์‚ฌ์šฉ์ž๊ฐ€์ด ๋‹จ๊ณ„์—์„œ ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค).
  5. ์—…๋ฐ์ดํŠธ ๋œ ์†Œ์Šค ์ฝ˜ํ…์ธ  npm install --save gatsby-source-contentful
  6. ์บ์‹œ npm run clean
  7. gatsby develop ๋ฐ ์„ฑ๊ณต-์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

npm i [email protected] [email protected] ๋‹ค์šด ๊ทธ๋ ˆ์ด๋“œ

์ฝ˜ํ…์ธ ์˜ ๋ฏธ๋””์–ด ํŒŒ์ผ์— ์ด๋ฏธ์ง€๋ฅผ ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค. ๊ทธ๋ฆฌ๊ณ  ๊ฒŒ์‹œ๋ฌผ ์•ˆ์— ์ด๋ฏธ์ง€๋ฅผ ๋„ฃ์–ด๋ณด์„ธ์š”. ์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ๊ทธ๋ฆฌ๊ณ  ์™œ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€์žˆ๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•˜๊ฑฐ๋‚˜ ํŒจํ‚ค์ง€๋ฅผ ๋‹ค์šด ๊ทธ๋ ˆ์ด๋“œํ•˜์ง€ ์•Š๊ณ  ๋‚ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

  1. ์ฝ˜ํ…์ธ ๊ฐ€์žˆ๋Š” ๊ณต๊ฐ„์œผ๋กœ ์ด๋™
  2. '๋ฏธ๋””์–ด'ํƒญ์„ ํด๋ฆญํ•˜๊ณ  ๋‹จ์ผ ์ž์‚ฐ์„ ๋”๋ฏธ ์ด๋ฏธ์ง€๋กœ ์ถ”๊ฐ€ํ•˜์—ฌ ์ž๋ฆฌ ํ‘œ์‹œ ์ž ์—ญํ• ์„ํ•ฉ๋‹ˆ๋‹ค.
  3. npm run develop ๋˜๋Š” gatsby develop ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ dev ์„œ๋ฒ„๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

๋ฐ”๋ผ๊ฑด๋Œ€, ์ด๊ฒƒ์ด ๋‹น์‹ ์˜ ๋ฌธ์ œ๋„ ํ•ด๊ฒฐํ•˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€ ์ด๊ฒƒ์ด ์™œ ๊ทธ๋Ÿฐ์ง€ ์šฐ๋ฆฌ์—๊ฒŒ ์•Œ๋ ค์ค„ ์ˆ˜ ์žˆ๋‹ค๋ฉด ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๋ฏธ์ง€ ์ถ”๊ฐ€๊ฐ€ ๋„์›€์ด๋˜์—ˆ์œผ๋ฏ€๋กœ ์ด๋ฏธ์ง€๋ฅผ ๊ฒŒ์‹œํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์—ฌ์ „ํžˆ์ด ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด์ œ ํ”Œ๋ ˆ์ด์Šค ํ™€๋” ์ด๋ฏธ์ง€๋ฅผ ์—…๋กœ๋“œํ–ˆ์„ ๋•Œ ์ž‘๋™ํ–ˆ๊ณ , ๊ฐ™์€ ํŠœํ† ๋ฆฌ์–ผ์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ ์ž‘๋™์„ ๋ฉˆ์ท„์Šต๋‹ˆ๋‹ค.
์ด์ œ fragment.js๋ฅผ ์‚ญ์ œํ–ˆ์Šต๋‹ˆ๋‹ค (์‹ค์ œ๋กœ๋Š” ๋ฐ์ดํ„ฐ ์†์‹ค์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ „์ฒด ํŒŒ์ผ์„ ์ฃผ์„ ์ฒ˜๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค). ๋‹ค์‹œ ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. fragments.js ์‚ญ์ œ-๋„์›€์ด๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

fragments.js ํŒŒ์ผ์„ ์‚ญ์ œํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์ด ์ ์ ˆํ•œ ํ•ด๊ฒฐ์ฑ…์ธ์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ.
๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ–ˆ๋Š”์ง€ ์—ฌ์ „ํžˆ ํ˜ผ๋ž€ ์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค.

๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. "๋ฏธ๋””์–ด"ํƒญ์— ๋”๋ฏธ ์ด๋ฏธ์ง€๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฏธ์ง€ ์ž๋ฆฌ ํ‘œ์‹œ์ž๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

[email protected] ์—์„œ์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. @frodd ๋Š” ๊ทธ์˜ ์ˆ˜์ • ์‚ฌํ•ญ์ด ๊ด€๋ จ์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ํ…Œ์ŠคํŠธ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค, ๊ทธ๋Ÿฌ๋‚˜ ๋งŒ์กฑํ•  ๋•Œ 2 ๊ฐœ์˜ ๊ณต๊ฐ„ ๋งŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ง€๊ธˆ ๋‘˜ ๋‹ค ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค : /, ๊ทธ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ญ์ œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ ํ•  ์ˆ˜์žˆ๋Š” ๋‹ค๋ฅธ ์ข‹์€ ์š”์ •์ด ์žˆ์Šต๋‹ˆ๊นŒ? :) ๊ณ ๋งˆ์›Œ

์ด๋ด, ๋‚˜๋Š” fragment.js์˜ ๋ชจ๋“  ๋‚ด์šฉ์„ ์‚ญ์ œํ•˜์—ฌ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ฒƒ์€ ์—†์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ์„ ์‚ญ์ œํ•  ๋•Œ ์ž‘๋™ํ•˜์ง€ ์•Š๊ณ  ๋‚ด์šฉ ๋งŒ ์‚ญ์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

fragments.js๋ฅผ ์‚ญ์ œํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์ง€๋งŒ ์ด์ƒ์ ์ธ ํ•ด๊ฒฐ์ฑ…์€ ์•„๋‹™๋‹ˆ๋‹ค. fragments.js ํŒŒ์ผ์€ ์–ด๋””์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๊นŒ?

์ฝ˜ํ…์ธ ์˜ ๋ฏธ๋””์–ด ํŒŒ์ผ์— ์ด๋ฏธ์ง€๋ฅผ ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค. ๊ทธ๋ฆฌ๊ณ  ๊ฒŒ์‹œ๋ฌผ ์•ˆ์— ์ด๋ฏธ์ง€๋ฅผ ๋„ฃ์–ด๋ณด์„ธ์š”. ์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ๊ทธ๋ฆฌ๊ณ  ์™œ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚˜๋„ ์ž˜ํ•ด

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค @dreilacadin , ๋ฏธ๋””์–ด์— ์ด๋ฏธ์ง€๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋ฐฉ๊ธˆ ์ƒˆ๋กœ ์„ค์น˜ํ–ˆ๋Š”๋ฐ์ด ๋ฌธ์ œ๊ฐ€ ๊ณ„์† ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ํ™•์‹คํžˆ ๋ฒ„๊ทธ์ธ๊ฐ€์š”?

๋ฐฉ๊ธˆ ์ƒˆ๋กœ ์„ค์น˜ํ–ˆ๋Š”๋ฐ์ด ๋ฌธ์ œ๊ฐ€ ๊ณ„์† ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ํ™•์‹คํžˆ ๋ฒ„๊ทธ์ธ๊ฐ€์š”?

@wardpeet ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

fragments.js์˜ ์ฝ˜ํ…์ธ ๋ฅผ ์‚ญ์ œํ•˜๋ฉด ๋‚˜์—๊ฒŒ๋„ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋ฏธ๋””์–ด์— ์ด๋ฏธ์ง€๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ํŠธ๋ฆญ์œผ๋กœ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์™œ ์ด๋Ÿฐ ์‹์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๊นŒ?

๊ฐœ๋ฐœ์„ ์œ„ํ•ด ์ˆ˜์ • ๋œ fragments.js ์‚ญ์ œ. ๊ทธ๋Ÿฌ๋‚˜ Netlify ๋นŒ๋“œ์—์„œ๋Š” ์ˆ˜์ •ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฏธ๋””์–ด๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ํšจ๊ณผ๊ฐ€์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ์–ผ๋งˆ๋‚˜ ์ž„์˜์˜ "์ˆ˜์ •".

๋˜ํ•œ ๋ฏธ๋””์–ด ํƒญ์— ์ž๋ฆฌ ํ‘œ์‹œ ์ž ์ด๋ฏธ์ง€๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ํŠธ๋ฆญ์„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ž๋ฆฌ ํ‘œ์‹œ ์ž ์ด๋ฏธ์ง€๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

์ž๋ฆฌ ํ‘œ์‹œ ์ž ์ด๋ฏธ์ง€ ์ถ”๊ฐ€๋„ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค.

์ž๋ฆฌ ํ‘œ์‹œ ์ž ์ด๋ฏธ์ง€๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

(๊ฒŒ์‹œ ๋จ!) ์ž๋ฆฌ ํ‘œ์‹œ ์ž ์ด๋ฏธ์ง€๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ๋„ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

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

์œ„์˜ ์‚ฌ๋žŒ๋“ค๊ณผ ๋™์ผํ•œ ํŠœํ† ๋ฆฌ์–ผ์„ ๋”ฐ๋ž๋‹ค ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค ( "The Great Gatsby Bootcamp-Full Gatsby.js Tutorial Course"by Mr Andrew Mead, https://www.youtube.com/watch?v=kzWIUX3CpuI).

๋ฌธ์ œ๊ฐ€ ์—ฌ์ „ํžˆ ์กด์žฌํ•˜๋ฉฐ /gatsby-source-contentful/src/ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ fragment.js ์˜ ๋‚ด์šฉ์„ ์‚ญ์ œํ•˜์—ฌ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์œ„์—์„œ ์ œ์•ˆํ•œ๋Œ€๋กœ ์‚ฌ์ดํŠธ์˜ Contentful ํ•ญ๋ชฉ์— ์ž๋ฆฌ ํ‘œ์‹œ ์ž ์ด๋ฏธ์ง€๋ฅผ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋‚ด ํ”„๋กœ์ ํŠธ๋Š” ํŠœํ† ๋ฆฌ์–ผ์„ ๋”ฐ๋ฅด๊ธฐ์œ„ํ•œ ๊ฒƒ์ด์ง€๋งŒ ์ž‘์„ฑ์ž๊ฐ€ ํ•ญ์ƒ ์ด๋ฏธ์ง€๋ฅผ ์ œ์ถœํ•˜๋„๋กํ•˜๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด๊ฒƒ์ด ๋ฏธ๋ž˜์— ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๋ถ€์ž‘์šฉ์„ ์ผ์œผํ‚ฌ ๊ฒƒ์ด๋ผ๋Š” ๊ฒƒ์„ ํฌ๊ฒŒ ๋‘๋ ค์›Œํ•˜๋ฉฐ ์•ž์œผ๋กœ ๋‚˜์•„๊ฐˆ ์ ์ ˆํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ ์œ„ํ•ด ๋น„๋””์˜ค (Gatsby.js + Contentful)์˜ ์†”๋ฃจ์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๋งค์šฐ ์ฃผ์ €ํ•ฉ๋‹ˆ๋‹ค.

์ˆ™๋ จ ๋œ ๊ฐœ๋ฐœ์ž๊ฐ€์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

@ martink-rsa ๋‚˜๋Š” ๊ทธ ํŠœํ† ๋ฆฌ์–ผ์„ ๋”ฐ๋ฅด์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์‹ค์ œ ํ”„๋กœ์ ํŠธ์—์„œ ์ผํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ๊ทธ ๋ฌธ์ œ๋„ ๋ฐœ์ƒํ•˜๊ณ  ๋‚ด ํ•ด๊ฒฐ์ฑ…์€ ์ž๋ฆฌ ํ‘œ์‹œ ์ž ํŠธ๋ฆญ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์—ˆ์Šต๋‹ˆ๋‹ค.

2.1.67 ๋ฒ„์ „์—์„œ์ด ์˜ค๋ฅ˜๊ฐ€ ๋‹ค์‹œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋Š” ์ฝ˜ํ…์ธ ๊ฐ€์žˆ๋Š” ์ฝ˜ํ…์ธ ์— ๋”๋ฏธ ์ด๋ฏธ์ง€๋ฅผ ์ถ”๊ฐ€ ํ•œ ๊ฒฝ์šฐ์—๋„ 2.1.69 ๋ฒ„์ „์—์„œ ๋‹ค์‹œ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

fragement.js ํŒŒ์ผ์„ ์‚ญ์ œํ•˜๊ณ , ๋ชจ๋“ˆ์„ ๋‹ค์‹œ ์„ค์น˜ํ•˜์—ฌ ์บ์‹œ๋ฅผ ์ •๋ฆฌํ•˜๋Š” ๋“ฑ ๋ชจ๋“  ์ œ์•ˆ์„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ €์—๊ฒŒ ๋„์›€์ด ๋œ ๊ฒƒ์€ Contentful์˜ ๋ฏธ๋””์–ด ํด๋”์— "๋”๋ฏธ"์ด๋ฏธ์ง€๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค ... ยฏ_ (ใƒ„) _ / ยฏ์ด ํ™•์‹คํžˆ Bug ๋ƒ„์ƒˆ๊ฐ€๋‚ฉ๋‹ˆ๋‹ค.

@Kureyko ๋Œ“๊ธ€์—์„œ ..

  1. gatsby-source-contentful node_modules์—์„œ fragments.js๋ฅผ ์‚ญ์ œํ–ˆ์Šต๋‹ˆ๋‹ค.
  2. ์—…๋ฐ์ดํŠธ ๋œ gatsby-cli
  3. ์ง€์›Œ์ง„ ์บ์‹œ npm run clean
  4. ๊ฐœ์ธ ๋น„ ๊ฐœ๋ฐœ์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค (๋‹ค๋ฅธ ํฌ๋Ÿผ์—์„œ๋Š” ์ผ๋ถ€ ์‚ฌ๋žŒ๋“ค์ด์ด ๋‹จ๊ณ„์—์„œ ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค).
  5. ์—…๋ฐ์ดํŠธ ๋œ ์†Œ์Šค ์ปจํ…์ธ ๊ฐ€์žˆ๋Š” npm ์„ค์น˜ --save gatsby-source-contentful
  6. ์ง€์›Œ์ง„ ์บ์‹œ npm run clean
  7. ๊ฐœ์ธ ๋น„๋Š” ๋ฐœ์ „ํ•˜๊ณ  ์„ฑ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ตœ์‹  ๋ฒ„์ „ 2.1.69 ์—์„œ์ด ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
blogPost ๋ผ๋Š” ์ฝ˜ํ…์ธ  ๋ชจ๋ธ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒŒ์‹œ ๋œ ๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๋ฌผ์„ ๊ฒŒ์‹œ ์ทจ์†Œํ•˜๊ณ  npm run develop ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด gatsby๊ฐ€

ERROR #11321  PLUGIN

"gatsby-node.js" threw an error while running the createPages lifecycle:

Cannot read property 'allContentfulBlogPost' of undefined



  TypeError: Cannot read property 'allContentfulBlogPost' of undefined

  - review-page.js:48 module.exports.buildReviewPages
    build/review-page.js:48:22

  - task_queues.js:85 processTicksAndRejections
    internal/process/task_queues.js:85:5

  - gatsby-node.js:7 async Object.module.exports.createPages
    gatsby-node.js:7:3

  - api-runner-node.js:235 async runAPI

๊ฐœ์ธ ๋น„๊ฐ€ ์„ฑ๊ณต์„ ๊ฑฐ๋‘๋ ค๋ฉด ํ•ด๋‹น ๊ฒŒ์‹œ๋ฌผ์„ ๋‹ค์‹œ ๊ฒŒ์‹œํ•˜๊ฑฐ๋‚˜ ์ƒˆ ๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๋ฌผ์„ ๊ฒŒ์‹œํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

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

์—ฌ๊ธฐ์—๋„ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‹น์‹ ์ด ๋‹จ์ˆœํžˆ ๋นจ๋ฆฌ Contentful์—์„œ (์ด๋ฏธ ๋ชจ๋“  ๋ฏธ๋””์–ด ์ž์‚ฐ๊ณผ ๊ด€๋ จ๋œ) ๊ธฐ์กด์˜ ์ปจํ…์ธ  ํ•ญ๋ชฉ์„ ๋ถ„๋ฆฌ ํ•  ๋•Œ, ๊ฐœ์ธ ๋น„ ํ”„๋กœ์ ํŠธ์˜ ๋ฃจํŠธ์—์žˆ๋Š” .cache ํŒŒ์ผ์„ ์‚ญ์ œํ•˜์—ฌ ์ž‘๋™ ํ•  ์ˆ˜์—†๋Š” ๊ฒฝ์šฐ์—๋„, ๊ฐœ์ธ ๋น„๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ ํ•œ ํ›„ ์˜ค๋ฅ˜์˜ ๋ฌด๋ฆฌ๋ฅผ ์–ป์„ :

image

  • ์˜ค๋ฅ˜ # 11321 ํ”Œ๋Ÿฌ๊ทธ์ธ

image

image

  • ์˜ค๋ฅ˜ # 85901 GRAPHQL

    GraphQL ์ฟผ๋ฆฌ์— ์˜ค๋ฅ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
    ์•Œ ์ˆ˜์—†๋Š” ์œ ํ˜• "ContentfulFixed".
    ํŒŒ์ผ : node_modules / gatsby-source-contentful / src / fragments.js : 20 : 37

  • ์˜ค๋ฅ˜ # 85923 GRAPHQL

    GraphQL ์ฟผ๋ฆฌ์— ์˜ค๋ฅ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
    "Query"์œ ํ˜•์—์„œ "allContentfulBlogPost"ํ•„๋“œ๋ฅผ ์ฟผ๋ฆฌ ํ•  ์ˆ˜ โ€‹โ€‹์—†์Šต๋‹ˆ๋‹ค.

  • ์˜ค๋ฅ˜ # 98123 ์›นํŒฉ

    ์˜ค๋ฅ˜ "Query"graphql / template-strings ์œ ํ˜•์—์„œ "allContentfulBlogPost"ํ•„๋“œ๋ฅผ ์ฟผ๋ฆฌ ํ•  ์ˆ˜ โ€‹โ€‹์—†์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋‹ค์‹œ ์ž‘๋™ํ•˜๊ฒŒํ•˜๋ ค๋ฉด Gatsby ํ”„๋กœ์ ํŠธ์˜ ๋ฃจํŠธ์—์„œ .cache ํŒŒ์ผ์„ ์‚ญ์ œํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์€ ์˜คํžˆ๋ ค ๊ฐœ์ธ ๋น„์™€ ๊ด€๋ จ๋œ ๊ฒƒ ๊ฐ™๋‹ค ๊ทธ๋ž˜์„œ Contenful์—์„œ ์ฝ˜ํ…์ธ ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ฒฝ์šฐ, (ํ”Œ๋Ÿฌ๊ทธ์ธ, ์บ์‹œ๋Š”? ... ์†์ƒ์ง€๊ณ )!

๊ฑด๋ฐฐ

์ตœ์‹  ๋ฒ„์ „ 2.1.69 ์—์„œ์ด ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
blogPost ๋ผ๋Š” ์ฝ˜ํ…์ธ  ๋ชจ๋ธ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒŒ์‹œ ๋œ ๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๋ฌผ์„ ๊ฒŒ์‹œ ์ทจ์†Œํ•˜๊ณ  npm run develop ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด gatsby๊ฐ€

ERROR #11321  PLUGIN

"gatsby-node.js" threw an error while running the createPages lifecycle:

Cannot read property 'allContentfulBlogPost' of undefined



  TypeError: Cannot read property 'allContentfulBlogPost' of undefined

  - review-page.js:48 module.exports.buildReviewPages
    build/review-page.js:48:22

  - task_queues.js:85 processTicksAndRejections
    internal/process/task_queues.js:85:5

  - gatsby-node.js:7 async Object.module.exports.createPages
    gatsby-node.js:7:3

  - api-runner-node.js:235 async runAPI

๊ฐœ์ธ ๋น„๊ฐ€ ์„ฑ๊ณต์„ ๊ฑฐ๋‘๋ ค๋ฉด ํ•ด๋‹น ๊ฒŒ์‹œ๋ฌผ์„ ๋‹ค์‹œ ๊ฒŒ์‹œํ•˜๊ฑฐ๋‚˜ ์ƒˆ ๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๋ฌผ์„ ๊ฒŒ์‹œํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์ปจํ…์ธ ์˜ ๋ฏธ๋””์–ด ํŒŒ์ผ์— ์ด๋ฏธ์ง€๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์„œ๋ฒ„๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์‹ญ์‹œ์˜ค.

์ปจํ…์ธ ์˜ ๋ฏธ๋””์–ด ํŒŒ์ผ์— ์ด๋ฏธ์ง€๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์„œ๋ฒ„๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์‹ญ์‹œ์˜ค.

์ด๊ฒƒ์ด ํ•ญ์ƒ ๊ฐ€์žฅ ๋จผ์ € ๋ฐœ์ƒํ•˜๋Š” ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด๋ฏ€๋กœ ์ด๋ฏธ ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
์‚ฌ์‹ค, ๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๋ฌผ๊ณผ ๊ด€๋ จ๋œ ๋ฏธ๋””์–ด ์ž์‚ฐ์ด ์žˆ์Šต๋‹ˆ๋‹ค!

publishig๋กœ ์‹œ๋„ํ•œ ๋‹ค์Œ Contentful์—์„œ ์ฝ˜ํ…์ธ  ํ•ญ๋ชฉ์„ ์ œ๊ฑฐํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค ...
์ผ๋ฐ˜์ ์œผ๋กœ .cache !!๋ฅผ ์ง€์šธ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ฝ˜ํ…์ธ ๊ฐ€์žˆ๋Š” ์ฝ˜ํ…์ธ ์™€ Gatsby์˜ ์Šฌ๋Ÿฌ๊ทธ ์•ฑ ์‚ฌ์ด์˜ ๋ชจ๋“  '๋™๊ธฐํ™” ํ•ด์ œ'์— ๋Œ€ํ•ด ์„œ๋ฒ„๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜๊ฒฌ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋™์ผํ•œ ๋ฌธ์ œ๋ฅผ ์ง„๋‹จํ•˜๋Š” ๋™์•ˆ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์œผ๋ฉฐ gatsby / packages / gatsby-source-contentful / src / gatsby-node.js ์˜ ์†Œ์Šค ์ฝ”๋“œ์—์žˆ๋Š”์ด ์ฃผ์„ ์Šค ๋‹ˆํŽซ์„ ๊ณต์œ  ํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.

// Check if there are any ContentfulAsset nodes and if gatsby-image is installed. If so,
// add fragments for ContentfulAsset and gatsby-image. The fragment will cause an error
// if there's not ContentfulAsset nodes and without gatsby-image, the fragment is useless.

GraphQL์€ null ํ•ญ๋ชฉ์„ ์ž˜ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š๊ณ  ๊ธฐ๋ณธ์ ์œผ๋กœ Contentful์˜ ๋ชจ๋“  ์ž์‚ฐ์— ๋Œ€ํ•ด gatsby-source-contentul ํ”Œ๋Ÿฌ๊ทธ์ธ ์ฟผ๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ฐพ์„ ์ž์‚ฐ์ด ์—†์„ ๋•Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์ œ # 2392์˜ ํ† ๋ก ์—์„œ ์•„๋งˆ๋„ gatsby-source-contentful ํ”Œ๋Ÿฌ๊ทธ์ธ์— ์‚ฌ์šฉ์ž ์ •์˜ ์Šคํ‚ค๋งˆ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ๋ฐฉ์ง€ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ ๋™์•ˆ ์ตœ์„ ์˜ "์ˆ˜์ •"์€ ๋‹จ์ˆœํžˆ Contentful> Media์— ์ด๋ฏธ์ง€๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” fragments.js ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค.

ํžˆ์•ผ!

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

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

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

๋˜ ์•ˆ๋…•!

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

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

๋‹จ์ผ ๋ฏธ๋””์–ด ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ๋„ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์ง€๋งŒ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.์ด ๋ฒ„๊ทธ์˜ ๊ทผ๋ณธ ์›์ธ์ด Contentful์˜ API ๋˜๋Š” gatsby-source-contentful์ž…๋‹ˆ๊นŒ?

๋‚˜๋„ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

ํŽธ์ง‘ : ์ด๋ฏธ์ง€ ์ž์‚ฐ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ํ•ด๋‹น ์ด๋ฏธ์ง€๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๋ฌผ์„ ์ž‘์„ฑํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ "์ˆ˜์ • ๋œ"๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค.

myName<strong i="8">@myComputer</strong>:~/www/gatsby-bootcamp$ rm -rf .cache && npm run develop

> [email protected] develop /home/myName/www/gatsby-bootcamp
> env-cmd -f env.development gatsby develop

success open and validate gatsby-configs - 0.067s
success load plugins - 2.227s
success onPreInit - 0.005s
success initialize cache - 0.014s
success copy gatsby files - 0.117s
success onPreBootstrap - 0.015s
success createSchemaCustomization - 0.489s
Starting to fetch data from Contentful
Fetching default locale
default locale is : en-US
contentTypes fetched 1
Updated entries  2
Deleted entries  0
Updated assets  0
Deleted assets  0
Fetch Contentful data: 315.783ms
success source and transform nodes - 0.600s
success building schema - 0.405s
success createPages - 0.032s
success createPagesStatefully - 0.072s
success onPreExtractQueries - 0.004s
success update schema - 0.037s

 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Unknown type "ContentfulFixed". Did you mean "ContentfulBlogPost", "ContentfulBlogPostEdge", or "ContentfulContentType"?

File: node_modules/gatsby-source-contentful/src/fragments.js:20:37


 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Unknown type "ContentfulFixed". Did you mean "ContentfulBlogPost", "ContentfulBlogPostEdge", or "ContentfulContentType"?

File: node_modules/gatsby-source-contentful/src/fragments.js:34:47


 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Unknown type "ContentfulFixed". Did you mean "ContentfulBlogPost", "ContentfulBlogPostEdge", or "ContentfulContentType"?

File: node_modules/gatsby-source-contentful/src/fragments.js:48:46


 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Unknown type "ContentfulFixed". Did you mean "ContentfulBlogPost", "ContentfulBlogPostEdge", or "ContentfulContentType"?

File: node_modules/gatsby-source-contentful/src/fragments.js:61:46


 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Unknown type "ContentfulFixed". Did you mean "ContentfulBlogPost", "ContentfulBlogPostEdge", or "ContentfulContentType"?

File: node_modules/gatsby-source-contentful/src/fragments.js:77:55


 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Unknown type "ContentfulFluid". Did you mean "ContentfulBlogPost", "ContentfulBlogPostSys", or "ContentfulBlogPostEdge"?

File: node_modules/gatsby-source-contentful/src/fragments.js:92:37


 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Unknown type "ContentfulFluid". Did you mean "ContentfulBlogPost", "ContentfulBlogPostSys", or "ContentfulBlogPostEdge"?

File: node_modules/gatsby-source-contentful/src/fragments.js:106:47


 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Unknown type "ContentfulFluid". Did you mean "ContentfulBlogPost", "ContentfulBlogPostSys", or "ContentfulBlogPostEdge"?

File: node_modules/gatsby-source-contentful/src/fragments.js:120:46


 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Unknown type "ContentfulFluid". Did you mean "ContentfulBlogPost", "ContentfulBlogPostSys", or "ContentfulBlogPostEdge"?

File: node_modules/gatsby-source-contentful/src/fragments.js:133:46


 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Unknown type "ContentfulFluid". Did you mean "ContentfulBlogPost", "ContentfulBlogPostSys", or "ContentfulBlogPostEdge"?

File: node_modules/gatsby-source-contentful/src/fragments.js:149:55


 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Unknown type "ContentfulResolutions". Did you mean "ContentfulBlogPost", "ContentfulBlogPostSys", "ContentfulContentType", "ContentfulBlogPostEdge", or "ContentfulBlogPostConnection"?

File: node_modules/gatsby-source-contentful/src/fragments.js:161:43


 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Unknown type "ContentfulResolutions". Did you mean "ContentfulBlogPost", "ContentfulBlogPostSys", "ContentfulContentType", "ContentfulBlogPostEdge", or "ContentfulBlogPostConnection"?

File: node_modules/gatsby-source-contentful/src/fragments.js:171:53


 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Unknown type "ContentfulResolutions". Did you mean "ContentfulBlogPost", "ContentfulBlogPostSys", "ContentfulContentType", "ContentfulBlogPostEdge", or "ContentfulBlogPostConnection"?

File: node_modules/gatsby-source-contentful/src/fragments.js:181:52


 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Unknown type "ContentfulResolutions". Did you mean "ContentfulBlogPost", "ContentfulBlogPostSys", "ContentfulContentType", "ContentfulBlogPostEdge", or "ContentfulBlogPostConnection"?

File: node_modules/gatsby-source-contentful/src/fragments.js:190:52


 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Unknown type "ContentfulResolutions". Did you mean "ContentfulBlogPost", "ContentfulBlogPostSys", "ContentfulContentType", "ContentfulBlogPostEdge", or "ContentfulBlogPostConnection"?

File: node_modules/gatsby-source-contentful/src/fragments.js:202:61


 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Unknown type "ContentfulSizes". Did you mean "ContentfulBlogPost", "ContentfulBlogPostSys", "ContentfulContentType", or "ContentfulBlogPostEdge"?

File: node_modules/gatsby-source-contentful/src/fragments.js:213:37


 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Unknown type "ContentfulSizes". Did you mean "ContentfulBlogPost", "ContentfulBlogPostSys", "ContentfulContentType", or "ContentfulBlogPostEdge"?

File: node_modules/gatsby-source-contentful/src/fragments.js:223:47


 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Unknown type "ContentfulSizes". Did you mean "ContentfulBlogPost", "ContentfulBlogPostSys", "ContentfulContentType", or "ContentfulBlogPostEdge"?

File: node_modules/gatsby-source-contentful/src/fragments.js:233:46


 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Unknown type "ContentfulSizes". Did you mean "ContentfulBlogPost", "ContentfulBlogPostSys", "ContentfulContentType", or "ContentfulBlogPostEdge"?

File: node_modules/gatsby-source-contentful/src/fragments.js:242:46


 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Unknown type "ContentfulSizes". Did you mean "ContentfulBlogPost", "ContentfulBlogPostSys", "ContentfulContentType", or "ContentfulBlogPostEdge"?

File: node_modules/gatsby-source-contentful/src/fragments.js:254:55

failed extract queries from components - 0.695s
success write out requires - 0.037s
success write out redirect data - 0.007s
success onPostBootstrap - 0.003s
โ €
info bootstrap finished - 9.644 s
โ €
success run queries - 0.148s - 11/12 80.81/s
success Generating image thumbnails - 0.900s - 3/3 3.33/s
โ €
You can now view gatsby-starter-hello-world in the browser.
โ €
  http://localhost:8000/
โ €
View the GraphQL Playground, an in-browser IDE, to explore your site's data and schema
โ €
  http://localhost:8000/___graphql
โ €
Note that the development build is not optimized.
To create a production build, use gatsby build
โ €
success Building development bundle - 5.216s

์ด ๋ฌธ์ œ๋Š” ์ •๋ง๋กœ ์ข…๊ฒฐ๋˜์–ด์„œ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค. ์•Œ๋ ค์ง„ ์›์ธ์ด ์žˆ์Šต๋‹ˆ๋‹ค (๋ฏธ๋””์–ด ์ž์‚ฐ์ด์—†๋Š” ์ฝ˜ํ…์ธ  ๊ณต๊ฐ„ ์‚ฌ์šฉ). ๋˜ํ•œ์ด ํ† ๋ก ์— ๋Œ€ํ•œ ๋Œ“๊ธ€ ์ˆ˜์™€ ๋Œ“๊ธ€์— ๋Œ€ํ•œ ๋ฐ˜์‘์„ ๊ณ ๋ คํ•  ๋•Œ ์ƒ๋‹นํ•œ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์„ ๋‹ค์‹œ ํ™œ์„ฑํ™”ํ•˜๊ณ  ๋ด‡์ด ๋‹ซ๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ ํ•  ์ˆ˜์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

(์ฃผ์ œ์—์„œ ๋ฒ—์–ด๋‚จ : ๋ฌธ์ œ๋ฅผ ์ž๋™์œผ๋กœ ๋‹ซ๋Š” ๋ด‡์„ ์‹คํ–‰ํ•˜๋Š” ์œ ์ง€ ๊ด€๋ฆฌ์ž์˜ ๊ฒฝํ–ฅ์ด ์ •๋ง ๋งˆ์Œ์— ๋“ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค. 30 ์ผ ๋™์•ˆ ๋Œ“๊ธ€์ด ์—†๋‹ค๊ณ ํ•ด์„œ ๋ฌธ์ œ๊ฐ€ ๋œ ํ˜„์‹ค์ ์ด๊ฑฐ๋‚˜ ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ๋„์›€์ด๋˜์ง€ ์•Š๋Š” "+1"์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. "์‚ด์•„์žˆ๋Š”"์ด์Šˆ๋ฅผ ์œ ์ง€ํ•˜๊ธฐ์œ„ํ•œ ์ฝ”๋ฉ˜ํŠธ)

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

https://github.com/gatsbyjs/gatsby/issues/15397์˜ ๋ณต์ œ๋Š” ์–ด๋–ค ๊ฒƒ์ด ์‹ค์ œ๋กœ ์—ด์–ด๋‘๊ธฐ์— ๊ฐ€์žฅ ์ข‹์€ ์Šค๋ ˆ๋“œ์ธ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

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

์•„๋ž˜ ๊ตฌ์„ฑ์„ gatsby-config.js์— ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
{ resolve: "gatsby-source-filesystem", options: { name: "src", path: $ {__ dirname} / src , }, }

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

๋™์ผ ... Contentful์— ์ด๋ฏธ์ง€๋ฅผ ์ถ”๊ฐ€ ํ•œ ํ›„ ๋ฌธ์ œ๊ฐ€ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๋ณธ ๊ฐ€์žฅ ์ด์ƒํ•œ ๊ฒƒ ...; -9
๊ทธ๋ฆฌ๊ณ  : ๊ฒธ์†ํ•œ ์ง€๊ตฌ์ธ๋“ค์ด ์šฐ๋ฆฌ์—๊ฒŒ๋งŒ ์ผ์–ด๋‚˜๋Š” ์ผ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ๋„ ๊ฐ™์€ ์ผ์ด ์ผ์–ด๋‚˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค : https://www.youtube.com/watch?v=T9hLWjIN-pY
๋ชจ๋“  ํŠธ๋ฆญ์„ ์‹œ๋„ํ•œ ํ›„ ๋งˆ์นจ๋‚ด ์ด๋ฏธ์ง€๋ฅผ ์—…๋กœ๋“œํ•˜๋ฉด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. Jason Lengstorf ์ž์‹ ๋„ ์ด๊ฒƒ์ด 'ํ™•์‹คํžˆ ๊ฐœ์ธ ๋น„ ๋ฌธ์ œ'๋ผ๊ณ  ์ธ์ •ํ•ฉ๋‹ˆ๋‹ค!

์˜ค๋ฅ˜ # 85901 GRAPHQL

์ฝ˜ํ…์ธ ๊ฐ€ ๋งŽ์€ ๋ธ”๋กœ๊ทธ์—์„œ ๋‚ด ๋ธ”๋กœ๊ทธ๋ฅผ ๊ฐ€์ ธ ์˜ค๋ ค๊ณ ํ•˜๋Š”๋ฐ ์ด์ƒํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
์ด ๋ฌธ์ œ๋ฅผ ์—ฌ๋Š” ์œ ์ผํ•œ ์ด์œ ๋Š” ์˜ค๋ฅ˜๊ฐ€ ๋‚ด๊ฒŒ ๊ทธ๋ ‡๊ฒŒ ๋งํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์˜ค๋ฅ˜๊ฐ€ ๋งํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์˜ค๋ฅ˜ :์ด StaticQuery์˜ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

"์ด๊ฒƒ์€ Gatsby์˜ ๋ฒ„๊ทธ ์ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ ํŽ˜์ด์ง€๋ฅผ ์ƒˆ๋กœ ๊ณ ์นจํ•ด๋„ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์œผ๋ฉด https://github.com/gatsbyjs/gatsby/issues ์—์„œ ๋ฌธ์ œ๋ฅผ์—ฌ์„ธ์š”."

๊ฐœ์ธ ๋น„ ์ •๋ณด ์ถœ๋ ฅ :

์ฒด๊ณ„:
์šด์˜์ฒด์ œ : Windows 10
CPU : (8) x64 Intel (R) Core (TM) i7-3632QM CPU @ 2.20GHz
๋ฐ”์ด๋„ˆ๋ฆฌ :
npm : 6.9.0-C : \ Program Filesnodejsnpm.CMD
์–ธ์–ด :
ํŒŒ์ด์ฌ : 3.7.2
๋ธŒ๋ผ์šฐ์ € :
๊ฐ€์žฅ์ž๋ฆฌ : 44.18362.1.0
npm ํŒจํ‚ค์ง€ :
๊ฐœ์ธ ๋น„ : ^ 2.13.51 => 2.13.51
gatsby-plugin-sass : ^ 2.1.4 => 2.1.4
gatsby-plugin-sharp : ^ 2.2.10 => 2.2.10
๊ฐœ์ธ ๋น„ ๋ฐœ์–ธ ์ด๋ฏธ์ง€ : ^ 3.1.7 => 3.1.7
๊ฐœ์ธ ๋น„ ๋ฐœ์–ธ ์ƒ๋Œ€ ์ด๋ฏธ์ง€ : ^ 0.2.3 => 0.2.3
gatsby-source-contentful : ^ 2.1.18 => 2.1.18
๊ฐœ์ธ ๋น„ ์†Œ์Šค ํŒŒ์ผ ์‹œ์Šคํ…œ : ^ 2.1.9 => 2.1.9
๊ฐœ์ธ ๋น„ ๋ณ€์••๊ธฐ ๋ฐœ์–ธ : ^ 2.6.11 => 2.6.11

์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์€ ๊ฑฐ๋ถ€

์˜ค๋ฅ˜ : ์‹œ์Šคํ…œ์ด ์ง€์ •๋œ ๊ฒฝ๋กœ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

  • envinfo.js : 1 Function.e.exports.sync
    [v12.0.0] / [gatsby-cli] / [envinfo] /dist/envinfo.js:1:4908
  • envinfo.js : 1 Object.copySync
    [v12.0.0] / [gatsby-cli] / [envinfo] /dist/envinfo.js:1:66886
  • envinfo.js : 1 Object.t.writeSync
    [v12.0.0] / [gatsby-cli] / [envinfo] /dist/envinfo.js:1:48715
  • envinfo.js : 1
    [v12.0.0] / [gatsby-cli] / [envinfo] /dist/envinfo.js:1:46872
  • envinfo.js : 1
    [v12.0.0] / [gatsby-cli] / [envinfo] /dist/envinfo.js:1:46887
  • task_queues.js : 88 processTicksAndRejections
    internal / process / task_queues.js : 88 : 5

๋‹น์‹ ์˜ ์ด๋ฏธ์ง€๋ฅผ ์ถ”๊ฐ€ ํ•  ํ•„์š”๊ฐ€ contentful ๋‹น์‹ ์ด ๊ทธ๋ ‡๊ฒŒ ๋ชจ๋“  ์ด๋ฏธ์ง€๋ฅผ ์ถ”๊ฐ€ ํ’๋ถ€ํ•œ ํ…์ŠคํŠธ ์ƒ์ž๋ฅผ ์„ ํƒํ•œ ๋‹ค์Œ ์„œ๋ฒ„๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ณ  ์ด๋Ÿฌํ•œ ์˜ค๋ฅ˜๋Š” ์‚ฌ๋ผ์งˆ ๊ฒƒ ๋•Œ๋ฌธ์— ์‹ ์ฒด ์ผ๋ถ€ ์‚ฌ์ดํŠธ.

์ด ์†”๋ฃจ์…˜๋ณด๋‹ค ๋” ๋‚˜์€ ์†”๋ฃจ์…˜์— ๋Œ€ํ•œ ํ”ผ๋“œ๋ฐฑ์ด๋‚˜ ์ œ์•ˆ์„ ์ œ๊ณตํ•˜์‹ญ์‹œ์˜ค. #happyCoding :)

์ฒจ๊ฐ€

{ resolve: "gatsby-source-filesystem", options: { name: "src", path: ${__dirname}/src, }, }

gatsby-config.js๊ฐ€ ๋„์›€์ด๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

https://itnext.io/content-management-with-gatsby-netlify-and-contentful-70f03de41602 ๋ฅผ ๋”ฐ๋ฅด๋Š” ๋™์•ˆ์ด ์˜ค๋ฅ˜๋ฅผ ์žฌํ˜„ ํ•  ์ˆ˜

node_modules / gatsby-source-contentful / sec / fragments.js๋ฅผ ์‚ญ์ œํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ "์ˆ˜์ •"๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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

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

ํžˆ์•ผ!

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

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

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

์ด๊ฒƒ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ? โ˜๏ธ

์ด ๋ฌธ์ œ๋Š” Contentful๊ณผ ํ•จ๊ป˜ Gatsby๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ์—๊ฒŒ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. ์ œ ์ƒ๊ฐ์—๋Š” ์ด๊ฒƒ์— ๋Œ€ํ•œ ์ˆ˜์ • (ํ•ด๊ฒฐ์ฑ…์ด ์•„๋‹Œ ์‹ค์ œ ์ˆ˜์ •)์„ ์ฐพ์„ ๋•Œ๊นŒ์ง€ ๋‹ซ์•„์„œ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์ด์ œ https://github.com/gatsbyjs/gatsby/issues/15397 ์˜ ์ค‘๋ณต์ด๋ฉฐ ์šฐ๋ฆฌ๋Š” ๊ฑฐ๊ธฐ์—์„œ ๊ทธ๊ฒƒ์„ ์ถ”์ ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€์žˆ๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•˜๊ฑฐ๋‚˜ ํŒจํ‚ค์ง€๋ฅผ ๋‹ค์šด ๊ทธ๋ ˆ์ด๋“œํ•˜์ง€ ์•Š๊ณ  ๋‚ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

  1. ์ฝ˜ํ…์ธ ๊ฐ€์žˆ๋Š” ๊ณต๊ฐ„์œผ๋กœ ์ด๋™
  2. '๋ฏธ๋””์–ด'ํƒญ์„ ํด๋ฆญํ•˜๊ณ  ๋‹จ์ผ ์ž์‚ฐ์„ ๋”๋ฏธ ์ด๋ฏธ์ง€๋กœ ์ถ”๊ฐ€ํ•˜์—ฌ ์ž๋ฆฌ ํ‘œ์‹œ ์ž ์—ญํ• ์„ํ•ฉ๋‹ˆ๋‹ค.
  3. npm run develop ๋˜๋Š” gatsby develop ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ dev ์„œ๋ฒ„๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

๋ฐ”๋ผ๊ฑด๋Œ€, ์ด๊ฒƒ์ด ๋‹น์‹ ์˜ ๋ฌธ์ œ๋„ ํ•ด๊ฒฐํ•˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€ ์ด๊ฒƒ์ด ์™œ ๊ทธ๋Ÿฐ์ง€ ์šฐ๋ฆฌ์—๊ฒŒ ์•Œ๋ ค์ค„ ์ˆ˜ ์žˆ๋‹ค๋ฉด ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ฏธ๋””์–ด ์ž์‚ฐ์— ์ด๋ฏธ์ง€๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ๋„ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์œ ๋„ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

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