gatsby开发作品,但不在同一项目上

0

我有一个非常简单的Gatsby应用程序。我正在运行gatsby development,它工作正常,但是运行gatsby build时出现错误。我不确定为什么开发会起作用而构建不会起作用。不知道我在想什么!

import React from "react"

import Layout from "./layout"

const ProductTemplate = ({ pageContext }) => {
const { product } = pageContext
return (
  <Layout>
    <h1>{product.title}</h1>
    <div>{product.description}</div>

  </Layout>
  )
}

export default ProductTemplate

这是确切的错误

   8 |   return (
   9 |     <Layout>
> 10 |       <h1>{product.title}</h1>
     |                    ^
  11 |       <div>{product.description}</div>
  12 | 


  WebpackError: TypeError: Cannot read property 'title' of undefined

  - product.js:10 
  src/pages/product.js:10:20

gatsby-node.js

const path = require(`path`)
exports.createPages = async ({ graphql, actions }) => {
const { createPage } = actions
// Query for all products in Shopify
const result = await graphql(`
  query {
    allShopifyProduct(sort: { fields: [title] }) {
      edges {
        node {
          title
          shopifyId
          handle
          description
          availableForSale
          priceRange {
            maxVariantPrice {
              amount
            }
            minVariantPrice {
              amount
            }
          }
        }
      }
    }
  }
`)
// Iterate over all products and create a new page using a template
// The product "handle" is generated automatically by Shopify
result.data.allShopifyProduct.edges.forEach(({ node }) => {
  createPage({
    path: `/product/${node.handle}`,
    component: path.resolve(`./src/pages/product.js`),
    context: {
      product: node,
    },
  })
})
}
费兰·比雷(Ferran Buireu)

ProductTemplate/pages文件夹中(应该在中/templates)。这导致Gatsby尝试自动为该目录中的每个文件创建页面。在自动执行的情况下,它没有任何上下文,因此构建失败。这仅当您运行情况gatsby build,因为在gatsby develop没有SSR(小号erver-小号IDE [R endering)。

createPageAPI旨在基于段,路径或另一个唯一的标识符字段创建动态页面,而不是用于已知页面(如/pages文件夹内的页面)的动态页面

为了解决这个问题,只需将您的product.js/templates和更改此:

component: path.resolve(`./src/pages/product.js`),

对此:

component: path.resolve(`./src/templates/product.js`),

这是因为您要为每个产品而不是页面创建模板(例如Gatsby可以理解页面)。

如果您想按照完整的说明进行操作,这是一个与您的问题完全相同的GitHub主题

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在同一项目上同时使用coffeescript和打字稿

来自分类Dev

SonarQube:在同一项目上同时执行多个Sonar分析。不同版本

来自分类Dev

使用PhpStorm在同一项目上添加许多文件夹

来自分类Dev

在同一项目上搜索多个范围值

来自分类Dev

可以在Intellij IDE的两个实例上打开同一项目

来自分类Dev

Django-CMS:同一项目上的多个域

来自分类Dev

使用设备iphone ios sdk上的2个版本调试同一项目?

来自分类Dev

使用PhpStorm在同一项目上添加许多文件夹

来自分类Dev

REST API和Web应用程序在同一项目上

来自分类Dev

Visual Studio Build平台因同一项目上的不同用户而异

来自分类Dev

同一项目/程序的多个实例

来自分类Dev

从Excel上的唯一项目获取数量

来自分类Dev

键入“找不到模块”-但仅在某些机器上。同一项目。有任何想法吗?

来自分类Dev

.NET Core-在iis Express下运行的同一项目在不同的驱动器上

来自分类Dev

单击同一项目时,TPoupMenu广播项目已取消选中

来自分类Dev

如何在同一服务器上配置多个symfony2项目(开发环境)

来自分类Dev

Android Spinner OnItemSelected未与同一项目一起调用

来自分类Dev

Android Spinner OnItemSelected未与同一项目一起调用

来自分类Dev

同一域上的多个Laravel 5项目

来自分类Dev

从intellij的同一项目文件夹运行几个Java程序

来自分类Dev

C#将不同版本的程序集加载到同一项目

来自分类Dev

循环执行网络呼叫后,同一项目被删除两次

来自分类Dev

从同一项目发布后,创建2次不同的点击

来自分类Dev

如何将创建的文件保存到同一项目目录?爪哇

来自分类Dev

我想在SQL Server中两次返回同一项目

来自分类Dev

对同一项目使用两个不同的SVN存储库

来自分类Dev

从同一项目构建.apk和.aar库

来自分类Dev

集成注释处理器为同一项目

来自分类Dev

如何将同一项目分组为数组?

Related 相关文章

  1. 1

    在同一项目上同时使用coffeescript和打字稿

  2. 2

    SonarQube:在同一项目上同时执行多个Sonar分析。不同版本

  3. 3

    使用PhpStorm在同一项目上添加许多文件夹

  4. 4

    在同一项目上搜索多个范围值

  5. 5

    可以在Intellij IDE的两个实例上打开同一项目

  6. 6

    Django-CMS:同一项目上的多个域

  7. 7

    使用设备iphone ios sdk上的2个版本调试同一项目?

  8. 8

    使用PhpStorm在同一项目上添加许多文件夹

  9. 9

    REST API和Web应用程序在同一项目上

  10. 10

    Visual Studio Build平台因同一项目上的不同用户而异

  11. 11

    同一项目/程序的多个实例

  12. 12

    从Excel上的唯一项目获取数量

  13. 13

    键入“找不到模块”-但仅在某些机器上。同一项目。有任何想法吗?

  14. 14

    .NET Core-在iis Express下运行的同一项目在不同的驱动器上

  15. 15

    单击同一项目时,TPoupMenu广播项目已取消选中

  16. 16

    如何在同一服务器上配置多个symfony2项目(开发环境)

  17. 17

    Android Spinner OnItemSelected未与同一项目一起调用

  18. 18

    Android Spinner OnItemSelected未与同一项目一起调用

  19. 19

    同一域上的多个Laravel 5项目

  20. 20

    从intellij的同一项目文件夹运行几个Java程序

  21. 21

    C#将不同版本的程序集加载到同一项目

  22. 22

    循环执行网络呼叫后,同一项目被删除两次

  23. 23

    从同一项目发布后,创建2次不同的点击

  24. 24

    如何将创建的文件保存到同一项目目录?爪哇

  25. 25

    我想在SQL Server中两次返回同一项目

  26. 26

    对同一项目使用两个不同的SVN存储库

  27. 27

    从同一项目构建.apk和.aar库

  28. 28

    集成注释处理器为同一项目

  29. 29

    如何将同一项目分组为数组?

热门标签

归档