The gatsby-node.js API file
Code in the file gatsby-node.js
is run once in the process of building your site. You can use it to create pages dynamically, add nodes in GraphQL, or respond to events during the build lifecycle. To use the Gatsby Node APIs, create a file named gatsby-node.js
in the root of your site. Export any of the APIs you wish to use in this file.
Every Gatsby Node API passes a set of Node API helpers. These let you access several methods like reporting, or perform actions like creating new pages.
gatsby-node.js
const path = require(`path`)// Log out information after a build is doneexports.onPostBuild = ({ reporter }) => { reporter.info(`Your Gatsby site has been built!`)}// Create blog pages dynamicallyexports.createPages = async ({ graphql, actions }) => { const { createPage } = actions const blogPostTemplate = path.resolve(`src/templates/blog-post.js`) const result = await graphql(` query { allSamplePages { edges { node { slug title } } } } `) result.data.allSamplePages.edges.forEach(edge => { createPage({ path: `${edge.node.slug}`, component: blogPostTemplate, context: { title: edge.node.title, }, }) })}