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 }
表示此资源 尚未成功加载,应使用默认资源加载器重试。