删除另一个插件拥有的类型的gatsby节点时出现错误

时间:2019-04-23 21:07:20

标签: gatsby

我遇到以下错误:

Error: The plugin "default-site-plugin" deleted a node of a type owned by another plugin.
            The node type "community_education__district_classes" is owned by "gatsby-source-apiserver".

我知道我收到此错误,因为我正在使用gatsby-source-apiserver,它返回了我不需要的节点。我将它们过滤掉,并使用deleteNode将其删除。它正在运行,并且仍在运行,但是我最近才升级了npm软件包,现在却遇到此错误。

是否有消除此错误的方法?如果这些节点是由插件自动生成的,那么删除gatsby-node.js中的这些节点对我来说是个坏主意吗? GraphQL是否是更好的解决方案?看来,根据我的自定义需求编辑节点模块也不是一个好方法。

具体的代码是这样的,但是逻辑更复杂(这就是为什么我选择不添加所有节点,然后使用GraphQL进行过滤的原因)。

if (!node.isValid) {
  deleteNode({ node });
}

1 个答案:

答案 0 :(得分:0)

我也将此问题作为GitHub问题发布,答案似乎是:“是的,这是个坏主意。”我将代码重构为使用GraphQL过滤掉不需要的节点。

GitHub问题线程: https://github.com/gatsbyjs/gatsby/issues/13600#issuecomment-486413760