«Ошибка ссылки: путь не определен» в моем проекте Gatsby

#reactjs #gatsby

#reactjs #gatsby

Вопрос:

Предыстория

Я пытаюсь установить, gatsby-plugin-categories следуя инструкциям наhttps://www.gatsbyjs.org/packages/gatsby-plugin-categories / но они либо пропускают шаги, либо у меня что-то конфликтует или отсутствует в моем коде.


гэтсби-конфигурация-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"; они никогда не давали пример кода для этого. И нет стартера, у которого есть то, что там есть

введите описание изображения здесь

не уверен, будет ли решение там, в этом файле, или мне нужно что-то изменить в моей конфигурации.

Комментарии:

1. вы импортировали path ? т.е. const path = require('path') в вашем gatsby-config.js

Ответ №1:

можете ли вы попробовать другие ваши пути

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