跳到主要内容

Runtime Plugin API

插件钩子定义:

编写运行时插件

请参阅编写运行时插件

钩子

那么调用Farm运行时插件钩子时有两种执行顺序:

  • serial: 该钩子按照插件的顺序依次调用ono。 所有插件都会被串行调用。
  • first: 一旦返回truthy值就跳过所有剩下的插件。

钩子执行顺序:

name

  • type: string

您的运行时插件的名称。

bootstrap

  • hook type: serial
  • type: (moduleSystem: ModuleSystem) => void | Promise<void>

当模块系统引导时调用一次。 在此挂钩中设置您的插件。 例子:

moduleCreated

  • hook type: serial
  • type: (module: Module) => void | Promise<void>

创建新模块实例后调用。 您可以读取或更新新创建的模块的属性。

备注

moduleCreated 在模块执行之前被调用,因此 module.exports 始终为空,如果要访问 module.exports,请使用 moduleInitialized

moduleInitialized

  • hook type: serial
  • type: (module: Module) => void | Promise<void>

在调用模块初始化函数后调用。

备注

moduleCreated 在模块执行后被调用,因此 module.exports 在此钩子中可用。

readModuleCache

  • hook type: serial
  • type: (module: Module) => boolean | Promise<boolean>

读取模块缓存后调用,返回 true 以跳过缓存读取并重新执行模块。

moduleNotFound

  • hook type: serial
  • type: (module: Module) => void | Promise<void>

当模块未注册时调用。

loadResource

  • hook type: first
  • type: (resource: Resource, targetEnv: 'browser' | 'node') => Promise<ResourceLoadResult>

加载资源时调用,在此钩子中自定义您的资源加载。

  • 返回 { success: true } 表示该资源已成功加载。
  • return { success: false, retryWithDefaultResourceLoader: true } 表示此资源尚未成功加载,应使用默认资源加载器重试。
Extremely Fast Web Build Tool Written in Rust

Copyright © 2024 Farm Community. Built with Docusaurus.