Apakah ada cara untuk mengubah kueri GraphQL dalam komponen halaman bergantung pada apakah situs tersebut berjalan dalam mode pengembangan atau produksi?
Anda tidak dapat secara langsung memanipulasi teks kueri, tetapi Anda dapat meneruskan konteks yang berbeda tergantung apakah Anda dalam mode dev atau mode prod.
Jika ini mengacu pada masalah yang dijelaskan di https://github.com/gatsbyjs/gatsby/issues/10844#issuecomment -471349943
membuat daftar blog secara terprogram, sehingga Anda dapat meneruskan context
ke kueri
createPage({
path: "/blog",
template: <some_template>,
context: {
draftBlacklist: process.env.NODE_ENV === `production` ? [true] : []
}
})
dan kemudian di kueri:
query BlogListing($draftBlacklist: [String!]!) {
allMarkdownRemark(filter: {frontmatter: {draft: {nin: $draftBlacklist}}}) {
edges {
node {
frontmatter {
title
draft
}
}
}
}
Yang seharusnya menampilkan semua node dalam dev, dan memfilter semua node dengan draft
disetel ke true
dalam produksi. Mungkin ada beberapa masalah caching (jika Anda menjalankan build demi develop, kami tidak akan menjalankan kembali kueri atm). Tetapi jika Anda menggunakan netlify
(atau jenis CI / CD lain) untuk build produksi, ini akan berfungsi
Komentar yang paling membantu
Anda tidak dapat secara langsung memanipulasi teks kueri, tetapi Anda dapat meneruskan konteks yang berbeda tergantung apakah Anda dalam mode dev atau mode prod.
Jika ini mengacu pada masalah yang dijelaskan di https://github.com/gatsbyjs/gatsby/issues/10844#issuecomment -471349943
membuat daftar blog secara terprogram, sehingga Anda dapat meneruskan
context
ke kueridan kemudian di kueri:
Yang seharusnya menampilkan semua node dalam dev, dan memfilter semua node dengan
draft
disetel ketrue
dalam produksi. Mungkin ada beberapa masalah caching (jika Anda menjalankan build demi develop, kami tidak akan menjalankan kembali kueri atm). Tetapi jika Anda menggunakannetlify
(atau jenis CI / CD lain) untuk build produksi, ini akan berfungsi