我的Gatsby项目中出现“ ReferenceError:路径未定义”

时间:2019-04-03 06:18:21

标签: reactjs gatsby

背景

我正在尝试按照https://www.gatsbyjs.org/packages/gatsby-plugin-categories/上的说明安装gatsby-plugin-categories,但是它们要么缺少步骤,要么我的代码中有冲突或缺失的地方。


gatsby-config-js

module.exports = {
  siteMetadata: {
    title: `VLLG`,
    description: `Village | California Campsites.`,
    author: `Juan Gallardo`,
  },
  plugins: [
    `gatsby-plugin-react-helmet`,
    {
      resolve: `gatsby-source-filesystem`,
      options: {
        name: `images`,
        path: `${__dirname}/src/images`,
      },
    },
    {
      resolve: `gatsby-source-filesystem`,
      options: {
        name: `pages`,
        path: `${__dirname}/src/pages/`,
      },
    },
    {
      resolve: "gatsby-plugin-categories",
      options: {
        templatePath: path.join(__dirname, "/src/templates/category.js")
      }
    },
    {
    resolve: `gatsby-transformer-remark`,
    options: {
      // CommonMark mode (default: true)
      commonmark: true,
      // Footnotes mode (default: true)
      footnotes: true,
      // Pedantic mode (default: true)
      pedantic: true,
      // GitHub Flavored Markdown mode (default: true)
      gfm: true,
      // Plugins configs
      plugins: [],
    },
  },
    `gatsby-transformer-sharp`,
    `gatsby-plugin-sharp`,
    {
      resolve: `gatsby-plugin-manifest`,
      options: {
        name: `VLLG`,
        short_name: `vllg`,
        start_url: `/`,
        background_color: `#663399`,
        theme_color: `#663399`,
        display: `minimal-ui`,
        icon: `src/images/gatsby-icon.png`, // This path is relative to the root of the site.
      },
    },
  ],
}

src / templates / category.js

import React from "react";
import Helmet from "react-helmet";
import { graphql } from "gatsby";
import Layout from "../layout";
import PostListing from "../components/PostListing";

export default class CategoryTemplate extends React.Component {
  render() {
    const { pageContext, data } = this.props;
    const { category } = pageContext;
    return (
      <Layout>
        <div className="category-container">
          <Helmet title={`Posts in category "${category}"`} />
          <PostListing postEdges={data.allMarkdownRemark.edges} />
        </div>
      </Layout>
    );
  }
}

export const pageQuery = graphql`
  query CategoryPage($category: String) {
    allMarkdownRemark(
      limit: 1000
      filter: { fields: { category: { eq: $category } } }
    ) {
      totalCount
      edges {
        node {
          fields {
            slug
            category
          }
          excerpt
          timeToRead
          frontmatter {
            title
            tags
            date
          }
        }
      }
    }
  }
`;

他们一行让人感到困惑,import PostListing from "../components/PostListing";他们从没有给出示例代码。那里没有启动器

enter image description here

不确定该文件中是否有解决方案,或者我是否需要在配置中进行调整。

1 个答案:

答案 0 :(得分:0)

您可以尝试其他方法吗

{
  resolve: "gatsby-plugin-categories",
  options: {
    templatePath: `${__dirname}/src/templates/category.js`
  }
}