Gatsby: Unterschiedliche GraphQL-Abfragen in Entwicklung und Produktion

Erstellt am 10. März 2019  ·  1Kommentar  ·  Quelle: gatsbyjs/gatsby

Gibt es eine Möglichkeit, die GraphQL-Abfragen in einer Seitenkomponente zu ändern, je nachdem, ob die Site im Entwicklungs- oder Produktionsmodus ausgeführt wird?

question or discussion

Hilfreichster Kommentar

Sie können den Abfragetext nicht direkt bearbeiten, aber Sie können unterschiedliche Kontexte übergeben, je nachdem, ob Sie sich im Entwicklungs- oder im Produktmodus befinden.

Wenn sich dies auf ein Problem bezieht, das unter https://github.com/gatsbyjs/gatsby/issues/10844#issuecomment -471349943 beschrieben ist

Erstellen Sie programmgesteuert eine Blog-Liste, damit Sie context an die Abfrage übergeben können

createPage({
  path: "/blog",
  template: <some_template>,
  context: {
    draftBlacklist: process.env.NODE_ENV === `production` ? [true] : []
  }
})

und dann in Abfrage:

query BlogListing($draftBlacklist: [String!]!) {
  allMarkdownRemark(filter: {frontmatter: {draft: {nin: $draftBlacklist}}}) {
    edges {
      node {
        frontmatter {
          title
          draft
        }
      }
    }
  }

Dies sollte alle Knoten in dev anzeigen und alle Knoten herausfiltern, wobei draft true in der Produktion auf netlify (oder andere Arten von CI / CD) für Produktions-Builds verwenden, sollte dies funktionieren

>Alle Kommentare

Sie können den Abfragetext nicht direkt bearbeiten, aber Sie können unterschiedliche Kontexte übergeben, je nachdem, ob Sie sich im Entwicklungs- oder im Produktmodus befinden.

Wenn sich dies auf ein Problem bezieht, das unter https://github.com/gatsbyjs/gatsby/issues/10844#issuecomment -471349943 beschrieben ist

Erstellen Sie programmgesteuert eine Blog-Liste, damit Sie context an die Abfrage übergeben können

createPage({
  path: "/blog",
  template: <some_template>,
  context: {
    draftBlacklist: process.env.NODE_ENV === `production` ? [true] : []
  }
})

und dann in Abfrage:

query BlogListing($draftBlacklist: [String!]!) {
  allMarkdownRemark(filter: {frontmatter: {draft: {nin: $draftBlacklist}}}) {
    edges {
      node {
        frontmatter {
          title
          draft
        }
      }
    }
  }

Dies sollte alle Knoten in dev anzeigen und alle Knoten herausfiltern, wobei draft true in der Produktion auf netlify (oder andere Arten von CI / CD) für Produktions-Builds verwenden, sollte dies funktionieren

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

dustinhorton picture dustinhorton  ·  3Kommentare

ghost picture ghost  ·  3Kommentare

ferMartz picture ferMartz  ·  3Kommentare

jimfilippou picture jimfilippou  ·  3Kommentare

brandonmp picture brandonmp  ·  3Kommentare