Gatsby: استعلام GraphQL مختلف في التطوير والإنتاج

تم إنشاؤها على ١٠ مارس ٢٠١٩  ·  1تعليق  ·  مصدر: gatsbyjs/gatsby

هل هناك طريقة لتعديل استعلامات GraphQL في أحد مكونات الصفحة اعتمادًا على ما إذا كان الموقع يعمل في وضع التطوير أو الإنتاج؟

question or discussion

التعليق الأكثر فائدة

لا يمكنك معالجة نص الاستعلام بشكل مباشر ، ولكن يمكنك تمرير سياق مختلف بناءً على ما إذا كنت في وضع 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 للاستعلام

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) للإنتاج ، فيجب أن يعمل هذا

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

hobochild picture hobochild  ·  3تعليقات

kalinchernev picture kalinchernev  ·  3تعليقات

ferMartz picture ferMartz  ·  3تعليقات

3CordGuy picture 3CordGuy  ·  3تعليقات

benstr picture benstr  ·  3تعليقات