在 onCreateNode 中过滤 Gatsby Slug

Filtering the Gatsby Slug in onCreateNode

我正在尝试过滤由 Gatsby 生成的 slug,以便我可以删除白色 space 并将其替换为“-”。当 onCreateNode 为 运行 时,我将 Gatsby 的记者设置为触发,但无论先清除缓存,它似乎都不会触发。当我签入 GraphiQL 时,它显示 slug 没有变化。这是我的 gastby-node.js onCreateNode:

exports.onCreateNode = ({ node, getNode, actions, reporter }) => {
reporter.info(`onCreateNode called from gatsby-node`)
const { createNodeField } = actions
if (node.internal.type === `MarkdownRemark`) {
    const slug = createFilePath({ node, getNode, basePath: `posts` }).replace(
        ' ',
        '-'
    )
    createNodeField({
        node,
        name: `slug`,
        value: slug
    })
}}

如有任何意见,我们将不胜感激!

在我的 gatsby-node.js 文件中有两个 onCreateNode() 的实例。在构建期间只有其中一个被调用。删除 onCreateNode() 的第二个实例解决了我的问题。