Existe uma maneira de modificar as consultas GraphQL em um componente de página, dependendo se o site está sendo executado em modo de desenvolvimento ou produção?
Você não pode manipular diretamente o texto da consulta, mas pode passar contextos diferentes, dependendo se estiver no modo de desenvolvimento ou produção.
Se isso se referir ao problema descrito em https://github.com/gatsbyjs/gatsby/issues/10844#issuecomment -471349943
crie uma lista de blogs programaticamente, para que você possa passar context
para consultar
createPage({
path: "/blog",
template: <some_template>,
context: {
draftBlacklist: process.env.NODE_ENV === `production` ? [true] : []
}
})
e depois na consulta:
query BlogListing($draftBlacklist: [String!]!) {
allMarkdownRemark(filter: {frontmatter: {draft: {nin: $draftBlacklist}}}) {
edges {
node {
frontmatter {
title
draft
}
}
}
}
Que deve mostrar todos os nós no dev e filtrar todos os nós com draft
definido como true
em produção. Pode haver algum problema de cache (se você executar build após o desenvolvimento, não executaremos novamente o atm da consulta). Mas se você usar netlify
(ou outros tipos de CI / CD) para compilações de produção, isso deve funcionar
Comentários muito úteis
Você não pode manipular diretamente o texto da consulta, mas pode passar contextos diferentes, dependendo se estiver no modo de desenvolvimento ou produção.
Se isso se referir ao problema descrito em https://github.com/gatsbyjs/gatsby/issues/10844#issuecomment -471349943
crie uma lista de blogs programaticamente, para que você possa passar
context
para consultare depois na consulta:
Que deve mostrar todos os nós no dev e filtrar todos os nós com
draft
definido comotrue
em produção. Pode haver algum problema de cache (se você executar build após o desenvolvimento, não executaremos novamente o atm da consulta). Mas se você usarnetlify
(ou outros tipos de CI / CD) para compilações de produção, isso deve funcionar