هل هناك طريقة لتعديل استعلامات GraphQL في أحد مكونات الصفحة اعتمادًا على ما إذا كان الموقع يعمل في وضع التطوير أو الإنتاج؟
لا يمكنك معالجة نص الاستعلام بشكل مباشر ، ولكن يمكنك تمرير سياق مختلف بناءً على ما إذا كنت في وضع dev أو prod.
إذا كان هذا يشير إلى المشكلة الموضحة في https://github.com/gatsbyjs/gatsby/issues/10844#issuecomment -471349943
إنشاء قائمة مدونة برمجيًا ، بحيث يمكنك تمرير context
للاستعلام
createPage({
path: "/blog",
template: <some_template>,
context: {
draftBlacklist: process.env.NODE_ENV === `production` ? [true] : []
}
})
ثم في الاستعلام:
query BlogListing($draftBlacklist: [String!]!) {
allMarkdownRemark(filter: {frontmatter: {draft: {nin: $draftBlacklist}}}) {
edges {
node {
frontmatter {
title
draft
}
}
}
}
والتي يجب أن تظهر جميع العقد في dev ، وتصفية جميع العقد مع تعيين draft
إلى true
في الإنتاج. قد تكون هناك مشكلة في التخزين المؤقت (إذا قمت بتشغيل build بعد التطوير ، فلن نعيد تشغيل الاستعلام الآلي). ولكن إذا كنت تستخدم netlify
(أو أنواع أخرى من CI / CD) للإنتاج ، فيجب أن يعمل هذا
التعليق الأكثر فائدة
لا يمكنك معالجة نص الاستعلام بشكل مباشر ، ولكن يمكنك تمرير سياق مختلف بناءً على ما إذا كنت في وضع dev أو prod.
إذا كان هذا يشير إلى المشكلة الموضحة في https://github.com/gatsbyjs/gatsby/issues/10844#issuecomment -471349943
إنشاء قائمة مدونة برمجيًا ، بحيث يمكنك تمرير
context
للاستعلامثم في الاستعلام:
والتي يجب أن تظهر جميع العقد في dev ، وتصفية جميع العقد مع تعيين
draft
إلىtrue
في الإنتاج. قد تكون هناك مشكلة في التخزين المؤقت (إذا قمت بتشغيل build بعد التطوير ، فلن نعيد تشغيل الاستعلام الآلي). ولكن إذا كنت تستخدمnetlify
(أو أنواع أخرى من CI / CD) للإنتاج ، فيجب أن يعمل هذا