3

出于学习目的,我编写了一个反转节点内容的 Gatsby 转换器。我将它与 一起使用gatsby-source-filesystem,仅对.test文件进行操作:

const crypto = require(`crypto`)

module.exports = function onCreateNode({ node, loadNodeContent, boundActionCreators }) {
  const { createNode, createParentChildLink } = boundActionCreators;

  if (node.extension !== 'test') {
    return;
  }

  const nodeContent = loadNodeContent(node);
  const nodeContentRev = nodeContent.split('').reverse().join('');
  const contentDigest = crypto
      .createHash(`md5`)
      .update(JSON.stringify(nodeContent))
      .digest(`hex`);
  const RevNode = {
    'contentRev': nodeContentRev,

    id: '9087657865-just-something-here-for-now',
    parent: null,
    children: [],
    internal: {
      type: 'Rev',
      contentDigest,
      content,
    },
  };

  createNode(RevNode);
}

不幸的是,我对 Gatsby 还是很陌生,所以我很难确定这是否有效。看看官方的变形金刚,他们不仅实现gatsby-node.js了(这就是我所拥有的),而且还实现了extend-node-type.js,但我找不到任何关于此的文档。

如何查询变压器的结果?

4

1 回答 1

0

假设您首先通过验证以下内容:

  1. 您的代码被加载并运行而不会引发异常。如果不是,首先使用 console.log 消息或调试器验证这一点。
  2. 您的源插件配置正确,并在其配置目录中提取文件。

假设两者都经过验证并且转换器插件被加载并运行没有问题,您将在 gatsby 的数据层中创建新节点。可以使用graphql探索数据层。

运行后在 http://localhost:8000/___graphql 中本地访问gatsby develop(参见这个gatsby 教程

于 2021-09-10T12:24:17.867 回答