首页 > 解决方案 > gatsby-source-filesystem allDirectory 如何排除根目录

问题描述

我的gatsby-source-filesystem配置如下:

module.exports = {
  /* Your site config here */
  plugins: [
    {
      resolve: `gatsby-source-filesystem`,
      options:{
        name: `dosbox`,
        path: `${__dirname}/src/dosbox/`,
      }
    },
  ],
}

我想查询目录中的dosbox子目录。我不想返回对dosbox目录本身的引用。我使用以下查询

query MyQuery {
  allDirectory(filter: {sourceInstanceName: {eq: "dosbox"}}) {
    edges {
      node {
        name
        dir
        modifiedTime
      }
    }
  }
}

这将返回以下结果。这将返回不需要的根dosbox目录。

{
  "data": {
    "allDirectory": {
      "edges": [
        {
          "node": {
            "name": "dosbox",
            "dir": "/Users/kevzettler/code/radlab/src",
            "modifiedTime": "2020-09-09T04:52:09.400Z"
          }
        },
        {
          "node": {
            "name": "DOOM",
            "dir": "/Users/kevzettler/code/radlab/src/dosbox",
            "modifiedTime": "2020-09-09T05:22:20.000Z"
          }
        }
      ]
    }
  },
  "extensions": {}
}

标签: reactjsgraphqlgatsby

解决方案


您可以使用ne运算符在查询中排除它:

query MyQuery {
  allDirectory(filter: {sourceInstanceName: {eq: "dosbox"}, name: { ne: "dosbox" }}) {
    edges {
      node {
        name
        dir
        modifiedTime
      }
    }
  }
}

推荐阅读