Skip to main content

Node API Helpers

传递给每个Gatsby的Node API的第一个参数是一个包含一组帮助器的对象. 所有Gatsby的Node API 共享的帮助器记录在" 共享的帮助器"部分中.

// in gatsby-node.js
exports.createPages = gatsbyNodeHelpers => {
  const { actions, reporter } = gatsbyNodeHelpers
  // use helpers
}

通用约定是在参数列表中解构助手:

// in gatsby-node.js
exports.createPages = ({ actions, reporter }) => {
  // use helpers
}

Note

一些API提供了其他帮助器. 例如createPages提供graphql函数. 有关详细信息,请查看Gatsby Node API中特定API的文档.

Shared helpers

Fields

  • get (key: string) => Promise<any>

    检索缓存的值

    Parameters
    • key string

      快取金钥

    返回值
    Promise<any>

    承诺解决缓存值

    Example

    const value = await cache.get(`unique-key`)
  • set (key: string, value: any) => Promise<any>

    缓存值

    Parameters
    • key string

      快取金钥

    • value any

      要缓存的值

    返回值
    Promise<any>

    承诺解决缓存值

    Example

    await cache.set(`unique-key`, value)

Fields

  • info (message: string) => void
    Parameters
    • message string

      显示的讯息

    返回值
    void

    Example

    reporter.info(`text`)
  • warn (message: string) => void
    Parameters
    • message string

      显示的讯息

    返回值
    void

    Example

    reporter.warn(`text`)
  • error (message: string, error?: Error) => void
    Parameters
    • message string

      显示的讯息

    • error Error

      可选错误对象

    返回值
    void

    Example

    reporter.error(`text`, new Error('something'))
  • panic (message: string, error?: Error) => void
    Parameters
    • message string

      显示的讯息

    • error Error

      可选错误对象

    返回值
    void

    Example

    reporter.panic(`text`, new Error('something'))
  • panicOnBuild (message: string, error?: Error) => void
    Parameters
    • message string

      显示的讯息

    • error Error

      可选错误对象

    返回值
    void

    Example

    reporter.panicOnBuild(`text`, new Error('something'))
  • verbose (message: string) => void

    请注意,仅当-verbose选项已传递到CLI时,此方法才有效

    Parameters
    • message string

      显示的讯息

    返回值
    void

    Example

    reporter.verbose(`text`)

Fields

  • tracer Opentracing.Tracer

    全局跟踪程序实例. 有关更多详细信息,请参阅opentracing Tracer文档 .

  • parentSpan Opentracing.Span

    跟踪器范围代表API运行. 有关更多详细信息,请查看opentracing Span文档 .

  • startSpan (spanName: string) => Opentracing.Span

    开始跟踪范围. 该范围将被创建为当前正在运行的API范围的子级. 这是一个方便包装

    tracing.tracer.startSpan(`span-name`, { childOf: tracing.parentSpan}).
    
    Parameters
    • spanName string

      跨度名称

    返回值
    Opentracing.Span

    Example

    exports.sourceNodes = async ({ actions, tracing }) => {
      const span = tracing.startSpan(`foo`)
    
      // Perform any span operations. E.g. add a tag to your span
      span.setTag(`bar`, `baz`)
    
      // Rest of your plugin code
    
      span.finish()
    }

actions Actions

用于以编程方式修改盖茨比内部状态的函数集合.

See actions reference.


用于以编程方式修改盖茨比内部状态的函数集合.

See actions reference.

将在gatsby 3.0中删除. 请改用动作 .


cache GatsbyCache

键值存储用于持久存储时间/内存/ CPU密集型任务的结果. 所有功能都是异步的并返回承诺.

Fields

  • get (key: string) => Promise<any>

    检索缓存的值

    Parameters
    • key string

      快取金钥

    返回值
    Promise<any>

    承诺解决缓存值

    Example

    const value = await cache.get(`unique-key`)
  • set (key: string, value: any) => Promise<any>

    缓存值

    Parameters
    • key string

      快取金钥

    • value any

      要缓存的值

    返回值
    Promise<any>

    承诺解决缓存值

    Example

    await cache.set(`unique-key`, value)

(input: string | object) => string

从字符串或对象创建稳定的内容摘要,可以使用此函数的结果来设置节点上的internal.contentDigest字段. 当您的内容更改时,Gatsby使用此字段的值使过时的数据无效.

Parameters

  • input string | object

Return value

string

哈希字符串

Example

const node = {
  ...nodeData,
  internal: {
    type: `TypeOfNode`,
    contentDigest: createContentDigest(nodeData)
  }
}

createNodeId Function

(input: string) => string

实用程序功能,用于生成全局唯一且稳定的节点ID. 如果不同的插件使用相同的输入,它将为不同的插件生成不同的ID.

Parameters

  • input string

Return value

string

UUIDv5 ID字符串

Example

const node = {
  id: createNodeId(`${backendData.type}${backendData.id}`),
  ...restOfNodeData
}

emitter Emitter

内部事件发射器/侦听器. 除非绝对必要,否则请勿使用. Emitter被视为私有API,可以随任何版本进行更改.


getCache Function

(id: string) => GatsbyCache

按名称获取缓存实例-仅应由接受子插件的插件使用.

Parameters

  • id string

    Test

Return value

GatsbyCache

请参阅cache部分以供参考.


getNode Function

(ID: string) => Node

通过给定的ID获取单个节点. 不要在graphql解析器中使用它-请参阅getNodeAndSavePathDependency .

Parameters

  • ID string

    节点的ID.

Return value

Node

单节点实例.

Example

const node = getNode(id)

(ID: string, path: string) => Node

通过给定的ID获取单个节点,并为给定的路径创建依赖关系. 应该使用它代替graphql解析器中的getNode来启用对查询结果的跟踪依赖性. 如果未使用,如果节点更改导致查询结果过时,Gatsby将不会重新运行查询. 有关更多详细信息,请参见页面->节点依赖性跟踪 .

Parameters

  • ID string

    节点的ID.

  • path string

    节点的

Return value

Node

单节点实例.


getNodes Function

() => Node[]

获取所有节点的数组.

Return value

Node[]

节点数组.

Example

const allNodes = getNodes()

(Type: string) => Node[]

获取给定类型的节点数组.

Parameters

  • Type string

    of nodes

Return value

Node[]

节点数组.

Example

const markdownNodes = getNodesByType(`MarkdownRemark`)

(id: string, contentDigest: string) => boolean

将缓存节点的contentDigest与传递的值进行比较,以确定节点是否已更改.

此检查是在Gatsby内部进行的,因此无需在插件中使用它. 将在gatsby 3.0中删除.

Parameters

  • id string

    节点数

  • contentDigest string

    节点数

Return value

boolean

(node: Node) => Promise<string>

从创建节点的插件中获取节点的内容.

Parameters

  • node Node

Return value

Promise<string>

Example

module.exports = async function onCreateNode(
  { node, loadNodeContent, actions, createNodeId }
) {
  if (node.internal.mediaType === 'text/markdown') {
    const { createNode, createParentChildLink } = actions
    const textContent = await loadNodeContent(node)
    // process textContent and create child nodes
  }
}

pathPrefix string

用于给资源URL加上前缀. pathPrefix将为空字符串或以斜杠开头但不以斜杠结尾的路径. 检查添加路径前缀页面以获取有关路径前缀的详细信息.


reporter GatsbyReporter

一组实用程序,可向用户输出信息

Fields

  • info (message: string) => void
    Parameters
    • message string

      显示的讯息

    返回值
    void

    Example

    reporter.info(`text`)
  • warn (message: string) => void
    Parameters
    • message string

      显示的讯息

    返回值
    void

    Example

    reporter.warn(`text`)
  • error (message: string, error?: Error) => void
    Parameters
    • message string

      显示的讯息

    • error Error

      可选错误对象

    返回值
    void

    Example

    reporter.error(`text`, new Error('something'))
  • panic (message: string, error?: Error) => void
    Parameters
    • message string

      显示的讯息

    • error Error

      可选错误对象

    返回值
    void

    Example

    reporter.panic(`text`, new Error('something'))
  • panicOnBuild (message: string, error?: Error) => void
    Parameters
    • message string

      显示的讯息

    • error Error

      可选错误对象

    返回值
    void

    Example

    reporter.panicOnBuild(`text`, new Error('something'))
  • verbose (message: string) => void

    请注意,仅当-verbose选项已传递到CLI时,此方法才有效

    Parameters
    • message string

      显示的讯息

    返回值
    void

    Example

    reporter.verbose(`text`)

store Redux.Store

用于应用程序状态的内部Redux状态. 除非绝对必要,否则请勿使用. Store被视为私有API,可以随任何版本进行更改.


tracing GatsbyTracing

一组实用程序,可为插件添加更详细的跟踪. 查看性能跟踪页面以获取更多详细信息.

Fields

  • tracer Opentracing.Tracer

    全局跟踪程序实例. 有关更多详细信息,请参阅opentracing Tracer文档 .

  • parentSpan Opentracing.Span

    跟踪器范围代表API运行. 有关更多详细信息,请查看opentracing Span文档 .

  • startSpan (spanName: string) => Opentracing.Span

    开始跟踪范围. 该范围将被创建为当前正在运行的API范围的子级. 这是一个方便包装

    tracing.tracer.startSpan(`span-name`, { childOf: tracing.parentSpan}).
    
    Parameters
    • spanName string

      跨度名称

    返回值
    Opentracing.Span

    Example

    exports.sourceNodes = async ({ actions, tracing }) => {
      const span = tracing.startSpan(`foo`)
    
      // Perform any span operations. E.g. add a tag to your span
      span.setTag(`bar`, `baz`)
    
      // Rest of your plugin code
    
      span.finish()
    }
Edit this page on GitHub
Docs
Tutorials
Plugins
Blog
Showcase

by  ICOPY.SITE