Gatsby: рдЧреНрд░рд╛рдлрдХреНрдпреВрдПрд▓ рддреНрд░реБрдЯрд┐ рдЕрдЬреНрдЮрд╛рдд рддрд░реНрдХ `рд╕реНрд▓рдЧ`

рдХреЛ рдирд┐рд░реНрдорд┐рдд 10 рд╕рд┐рддре░ 2017  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: gatsbyjs/gatsby

рдЬрд╝рд░рд╛ рд╕реБрдирд┐рдП рд╕рднреАред рдЙрдиреНрдирдд рд╕реНрдЯрд╛рд░реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдмреНрд▓реЙрдЧ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдореИрдВрдиреЗ рдорд┐рд╢реНрд░рдг рд╕реЗ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдкреНрд▓рдЧрдЗрдиреНрд╕ рдЦреАрдВрдЪ рд▓рд┐рдпрд╛ рд╣реИ рдФрд░ рдмрд╕ рдПрдХ рдирдореВрдирд╛ рдкреЛрд╕реНрдЯ рдЦреАрдВрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореБрдЭреЗ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╡рд┐рдХрд╛рд╕ рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдкрд░ GraphQL Error Unknown argument slug рддреНрд░реБрдЯрд┐ рдорд┐рд▓ рд░рд╣реА рд╣реИред

exports.createPages = ({ graphql, boundActionCreators }) => {
  const { createPage } = boundActionCreators
  return new Promise((resolve, reject) => {
    graphql(
      `
      {
        allContentfulBlogPost(limit: 1000) {
          edges {
            node {
              id
              slug
            }
          }
        }
      }
    `
    )
      .then(result => {
        if (result.errors) {
          reject(result.errors)
        }
        const postPage = path.resolve("src/templates/post.jsx");
        _.each(result.data.allContentfulBlogPost.edges, edge => {
          console.log(edge.node);

          createPage({
            path: `/post/${edge.node.slug}`,
            component: postPage,
            context: {
              id: edge.node.id,
              slug: edge.node.slug
            },
          })
        })
      })
      .then(resolve)
  })
}

рдореЗрд░реЗ рдкрд╛рд╕ "рд╕реНрд▓рдЧ" рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрджрд░реНрдн рд╕реЗрдЯ рд╣реИ, рдЕрдЧрд░ рдореИрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреЛрд╕реНрдЯ рдШрдЯрдХ рдЧреНрд░рд╛рдлрдХреНрдпреВрдПрд▓ рдХреНрд╡реЗрд░реА рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ ... рд▓реЗрдХрд┐рди рдпрд╣ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХ рд░рд╣рд╛ рд╣реИред
рдпрд╣рд╛рдБ рдореЗрд░рд╛ рдХреБрдЫ рдХрдВрд╕реЛрд▓ рдЖрдЙрдЯрдкреБрдЯ рд╣реИ рдЬрд╣рд╛рдБ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ

Fetch Contentful data: 404.350ms
success source and transform nodes тАФ 0.552 s
success building schema тАФ 0.548 s
success createLayouts тАФ 0.055 s
таБ /xxxxxxx/src/templates/post.jsx
{ id: 'c7juaTIcg6cW2wAGKCQuios', slug: 'test-post' }
success createPages тАФ 0.061 s
success createPagesStatefully тАФ 0.023 s
GraphQL Error Unknown argument `slug`

  file: /Users/joshuaweaver/Documents/JoyfulNoise/joyfulnoiseliving/src/templates/post.jsx

   1 |
   2 |   query BlogPostBySlug($slug: String!) {
>  3 |     allContentfulBlogPost(slug: { eq: $slug }) {
     |                           ^
   4 |       title
   5 |       slug
...

рдореИрдВ рдЧреНрд░рд╛рдлрдХреНрдпреВрдПрд▓ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдирдпрд╛ рд╣реВрдВ рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдпрд╣рд╛рдВ рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рдпрд╛рдж рдЖ рд░рд╣рд╛ рд╣реИред рдЖрдк рдпрд╣рд╛рдВ рдЬреЛ рдХреБрдЫ рднреА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЙрд╕рдореЗрдВ рд╕реЗ рдХреБрдЫ рднреА рдЕрд╕рд╛рдзрд╛рд░рдг рд╣реИ? рддрд▓рд╛рд╢ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдУрд╣ рдареАрдХ рд╣реИ, рд╣рд╛рдБ, рд╡рд╣ рдкреНрд░рд╢реНрди рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ред рдЕрдкрдиреЗ рдШрдЯрдХреЛрдВ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрдкрдиреЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдЧреНрд░рд╛рдлрд╝ i QL рдореЗрдВ рдЖрдЬрд╝рдорд╛рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВред

"рд╕рднреА" рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рднреА рдиреЛрдбреНрд╕ рдХреЛ рдХреНрд╡реЗрд░реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред рдмрд┐рдирд╛ рд╕рдм рдХреБрдЫ рдПрдХ рд╣реА рдЖрдЗрдЯрдо рдХреЛ рдХреНрд╡реЗрд░реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдиреЛрдб рдореЗрдВ рд╕реНрд▓рдЧ рди рд╣реЛ?

рд╕реВрд░реНрдп рдкрд░, 10 рд╕рд┐рддрдВрдмрд░, 2017, 7:17 рдкреВрд░реНрд╡рд╛рд╣реНрди рдЬреЛрд╢ рд╡реАрд╡рд░ рд╕реВрдЪрдирд╛рдПрдВ @github.com рдиреЗ рд▓рд┐рдЦрд╛:

рдЬрд╝рд░рд╛ рд╕реБрдирд┐рдП рд╕рднреАред рдЙрдиреНрдирдд . рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рд╕реА рдмреНрд▓реЙрдЧ рдкрд░ рд╕рд╛рдордЧреНрд░реА рдХреЛ рддрд╛рд░-рддрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ
рд╕реНрдЯрд╛рд░реНрдЯрд░ред рдореИрдВрдиреЗ рдорд┐рд╢реНрд░рдг рд╕реЗ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдкреНрд▓рдЧрдЗрдиреНрд╕ рдирд┐рдХрд╛рд▓ рд▓рд┐рдпрд╛ рд╣реИ рдФрд░ рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ
рдмрд╕ рдПрдХ рдирдореВрдирд╛ рдкреЛрд╕реНрдЯ рдЦреАрдВрдЪ рд▓рд┐рдпрд╛ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдПред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореБрдЭреЗ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдПрдХ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ
рддреНрд░реБрдЯрд┐ GraphQL рддреНрд░реБрдЯрд┐ рдЕрдЬреНрдЮрд╛рдд рддрд░реНрдХ рд╕рд░реНрд╡рд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдкрд░ рд╕реНрд▓рдЧред

Exports.createPages = ({рдЧреНрд░рд╛рдлрдХреНрд▓, рдмрд╛рдЙрдВрдбрдПрдХреНрд╢рди рдХреНрд░рд┐рдПрдЯрд░}) => {
рдХреЙрдиреНрд╕реНрдЯ {рдХреНрд░рд┐рдПрдЯрдкреЗрдЬ} = рдмрд╛рдЙрдВрдбрдПрдХреНрд╢рди рдХреНрд░рд┐рдПрдЯрд░реНрд╕
рдирдпрд╛ рд╡рд╛рджрд╛ рд╡рд╛рдкрд╕ рдХрд░реЗрдВ ((рд╕рдВрдХрд▓реНрдк рдХрд░реЗрдВ, рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВ) => {
рдЧреНрд░рд╛рдлрдХреНрд▓ (
{ allContentfulBlogPost(limit: 1000) { edges { node { id slug } } } }
)
рддрдм (рдкрд░рд┐рдгрд╛рдо => {
рдЕрдЧрд░ (рдкрд░рд┐рдгрд╛рдоред рддреНрд░реБрдЯрд┐рдпрд╛рдВ) {
рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВ (рдкрд░рд┐рдгрд╛рдоред рддреНрд░реБрдЯрд┐рдпрд╛рдВ)
}
рдХреЙрдиреНрд╕реНрдЯ рдкреЛрд╕реНрдЯрдкреЗрдЬ = рдкрдеред рд╕рдорд╛рдзрд╛рди ("src/templates/post.jsx");
_.each(result.data.allContentfulBlogPost.edges, edge => {
рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ (рдПрдЬ.рдиреЛрдб);

      createPage({
        path: `/post/${edge.node.slug}`,
        component: postPage,
        context: {
          id: edge.node.id,
          slug: edge.node.slug
        },
      })
    })
  })
  .then(resolve)

})
}

рдореЗрд░реЗ рдкрд╛рд╕ "рд╕реНрд▓рдЧ" рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрджрд░реНрдн рд╕реЗрдЯ рд╣реИ, рдЬрд┐рд╕реЗ рдЕрдЧрд░ рдореИрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдордЭреВрдВ, рддреЛ is
рдЬрд╣рд╛рдВ рдпрд╣ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреЛрд╕реНрдЯ рдШрдЯрдХ рдЧреНрд░рд╛рдлрдХреНрдпреВрдПрд▓ рдХреНрд╡реЗрд░реА рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ ...
рд▓реЗрдХрд┐рди рдпрд╣ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХ рд░рд╣рд╛ рд╣реИред
рдпрд╣рд╛рдБ рдореЗрд░рд╛ рдХреБрдЫ рдХрдВрд╕реЛрд▓ рдЖрдЙрдЯрдкреБрдЯ рд╣реИ рдЬрд╣рд╛рдБ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ

рд╕рдВрддреЛрд╖рдЬрдирдХ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ: 404.350ms
рд╕рдлрд▓рддрд╛ рдХрд╛ рд╕реНрд░реЛрдд рдФрд░ рдкрд░рд┐рд╡рд░реНрддрди рдиреЛрдбреНрд╕ тАФ 0.552 s
рд╕рдлрд▓рддрд╛ рдирд┐рд░реНрдорд╛рдг рдпреЛрдЬрдирд╛ тАФ 0.548 s
рд╕рдХреНрд╕реЗрд╕ рдХреНрд░рд┐рдПрдЯрд▓реЗрдЖрдЙрдЯреНрд╕ тАФ 0.055 s
/xxxxxxx/src/templates/post.jsx
{ рдЖрдИрдбреА: 'c7juaTIcg6cW2wAGKCQuios', рд╕реНрд▓рдЧ: 'рдЯреЗрд╕реНрдЯ-рдкреЛрд╕реНрдЯ'}
рд╕рдХреНрд╕реЗрд╕ рдХреНрд░рд┐рдПрдЯрдкреЗрдЬ тАФ 0.061 рд╕реЗрдХрдВрдб
рд╕рдлрд╝рд▓рддрд╛ createPagesStatefully тАФ 0.023 s
рдЧреНрд░рд╛рдлрдХреНрдпреВрдПрд▓ рддреНрд░реБрдЯрд┐ рдЕрдЬреНрдЮрд╛рдд рддрд░реНрдХ slug

рдлрд╝рд╛рдЗрд▓: /Users/joshuaweaver/Documents/JoyfulNoise/joyfulnoiseliving/src/templates/post.jsx

1 |
2 | рдХреНрд╡реЗрд░реА BlogPostBySlug($slug: String!) {

3 | AllContentfulBlogPost (рд╕реНрд▓рдЧ: {eq: $slug}) {
| ^
4 | рд╢реАрд░реНрд╖рдХ
5 | рдХрд╛рдЙрдВрдЯрд░
...

рдореИрдВ рдЧреНрд░рд╛рдлрдХреНрдпреВрдПрд▓ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдирдпрд╛ рд╣реВрдВ рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдпрд╣рд╛рдВ рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рдпрд╛рдж рдЖ рд░рд╣рд╛ рд╣реИред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЗрд╕ рдереНрд░реЗрдб рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реА рд╣реИред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/gatsbyjs/gatsby/issues/2069 , рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AAEVh7fahni3VfI4tz_PphtJPctw2jV5ks5sg2LWgaJpZM4PSM2E
.

рдЦреИрд░, рдореЗрд░реЗ рдкрд╛рд╕ рдХрдВрдЯреЗрдВрдЯрдлреБрд▓ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдиреЛрдб/рдкреЛрд╕реНрдЯ рдерд╛ред

рд╣рдореНрдо .. рдЬрдм рдпрд╣ allContentfulBlogPost рд╕реЗ contentfulBlogPost рддрдХ рдЪрд▓ рд░рд╣рд╛ рдерд╛ рддрдм рдореИрдВрдиреЗ рдХреНрд╡реЗрд░реА рдХреЛ рдмрджрд▓рдирд╛ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ рдФрд░ рдпрд╣ рдЕрдм рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ ... рд▓реЗрдХрд┐рди, рдЧреНрд░рд╛рдлрдХреНрдпреВрдПрд▓ рдХреЗ рд▓рд┐рдП рдЗрддрдирд╛ рдирдпрд╛ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг, рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдЕрдВрддрд░ред

рдУрд╣ рдареАрдХ рд╣реИ, рд╣рд╛рдБ, рд╡рд╣ рдкреНрд░рд╢реНрди рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ред рдЕрдкрдиреЗ рдШрдЯрдХреЛрдВ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрдкрдиреЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдЧреНрд░рд╛рдлрд╝ i QL рдореЗрдВ рдЖрдЬрд╝рдорд╛рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВред

"рд╕рднреА" рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рднреА рдиреЛрдбреНрд╕ рдХреЛ рдХреНрд╡реЗрд░реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред рдмрд┐рдирд╛ рд╕рдм рдХреБрдЫ рдПрдХ рд╣реА рдЖрдЗрдЯрдо рдХреЛ рдХреНрд╡реЗрд░реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

rossPatton picture rossPatton  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

magicly picture magicly  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

signalwerk picture signalwerk  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jimfilippou picture jimfilippou  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

theduke picture theduke  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ