根据服务器端渲染或浏览器渲染选择createPages gatsby组件

Choose createPages gatsby component based on server side rendering or browser rendering

我正在使用 createPages 根据某些 JSON 输入自动生成组件,如下所示:

exports.createPages = ({ graphql, boundActionCreators }) => {
  const { createPage } = boundActionCreators
  return new Promise((resolve, reject) => {
    graphql(`
{
  allPageJson{
    edges {
      node {
        id
        url
      }
    }
  }
}
    `).then(result => {
      result.data.allPageJson.edges.map(({ node }) => {
        createPage({
          path: node.url,
          component: path.resolve(`./src/templates/page.js`),
          context: {
            id: node.id,
          },
        })
      })
      resolve()
    })
  })
}

我正在寻找的是一个参数或助手,它告诉我我目前 运行 处于构建模式还是开发模式,所以像这样:

exports.createPages = ({ isBuildMode }) => {
  if (isBuildMode) {
     console.log('looks like you ran gatsby build')
     return
  }
  console.log('looks like you ran gatsby develop')
}

process.env.NODE_ENV 是您最好的自动取款机。很高兴讨论问题中的其他选项!