根据服务器端呈现或浏览器呈现选择createPages gatsby组件

时间:2017-09-05 16:10:12

标签: javascript reactjs gatsby

我正在使用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')
}

1 个答案:

答案 0 :(得分:0)

process.env.NODE_ENV是你最好的选择。很高兴在一个问题上讨论其他选项!