Trait Plugin

Source
pub trait Plugin:
    Any
    + Send
    + Sync {
Show 34 methods // Required method fn name(&self) -> &str; // Provided methods fn priority(&self) -> i32 { ... } fn config(&self, _config: &mut Config) -> Result<Option<()>> { ... } fn plugin_cache_loaded( &self, _cache: &Vec<u8>, _context: &Arc<CompilationContext>, ) -> Result<Option<()>> { ... } fn build_start( &self, _context: &Arc<CompilationContext>, ) -> Result<Option<()>> { ... } fn resolve( &self, _param: &PluginResolveHookParam, _context: &Arc<CompilationContext>, _hook_context: &PluginHookContext, ) -> Result<Option<PluginResolveHookResult>> { ... } fn load( &self, _param: &PluginLoadHookParam<'_>, _context: &Arc<CompilationContext>, _hook_context: &PluginHookContext, ) -> Result<Option<PluginLoadHookResult>> { ... } fn transform( &self, _param: &PluginTransformHookParam<'_>, _context: &Arc<CompilationContext>, ) -> Result<Option<PluginTransformHookResult>> { ... } fn parse( &self, _param: &PluginParseHookParam, _context: &Arc<CompilationContext>, _hook_context: &PluginHookContext, ) -> Result<Option<ModuleMetaData>> { ... } fn process_module( &self, _param: &mut PluginProcessModuleHookParam<'_>, _context: &Arc<CompilationContext>, ) -> Result<Option<()>> { ... } fn analyze_deps( &self, _param: &mut PluginAnalyzeDepsHookParam<'_>, _context: &Arc<CompilationContext>, ) -> Result<Option<()>> { ... } fn finalize_module( &self, _param: &mut PluginFinalizeModuleHookParam<'_>, _context: &Arc<CompilationContext>, ) -> Result<Option<()>> { ... } fn build_end( &self, _context: &Arc<CompilationContext>, ) -> Result<Option<()>> { ... } fn generate_start( &self, _context: &Arc<CompilationContext>, ) -> Result<Option<()>> { ... } fn optimize_module_graph( &self, _module_graph: &mut ModuleGraph, _context: &Arc<CompilationContext>, ) -> Result<Option<()>> { ... } fn analyze_module_graph( &self, _module_graph: &mut ModuleGraph, _context: &Arc<CompilationContext>, _hook_context: &PluginHookContext, ) -> Result<Option<ModuleGroupGraph>> { ... } fn partial_bundling( &self, _modules: &Vec<ModuleId>, _context: &Arc<CompilationContext>, _hook_context: &PluginHookContext, ) -> Result<Option<Vec<ResourcePot>>> { ... } fn process_resource_pots( &self, _resource_pots: &mut Vec<&mut ResourcePot>, _context: &Arc<CompilationContext>, ) -> Result<Option<()>> { ... } fn render_start( &self, _config: &Config, _context: &Arc<CompilationContext>, ) -> Result<Option<()>> { ... } fn render_resource_pot_modules( &self, _resource_pot: &ResourcePot, _context: &Arc<CompilationContext>, _hook_context: &PluginHookContext, ) -> Result<Option<ResourcePotMetaData>> { ... } fn render_resource_pot( &self, _resource_pot: &PluginRenderResourcePotHookParam, _context: &Arc<CompilationContext>, ) -> Result<Option<PluginRenderResourcePotHookResult>> { ... } fn augment_resource_hash( &self, _render_pot_info: &ResourcePotInfo, _context: &Arc<CompilationContext>, ) -> Result<Option<String>> { ... } fn optimize_resource_pot( &self, _resource: &mut ResourcePot, _context: &Arc<CompilationContext>, ) -> Result<Option<()>> { ... } fn generate_resources( &self, _resource_pot: &mut ResourcePot, _context: &Arc<CompilationContext>, _hook_context: &PluginHookContext, ) -> Result<Option<PluginGenerateResourcesHookResult>> { ... } fn process_generated_resources( &self, _resources: &mut PluginGenerateResourcesHookResult, _context: &Arc<CompilationContext>, ) -> Result<Option<()>> { ... } fn handle_entry_resource( &self, _resource: &mut PluginHandleEntryResourceHookParams<'_>, _context: &Arc<CompilationContext>, ) -> Result<Option<()>> { ... } fn finalize_resources( &self, _param: &mut PluginFinalizeResourcesHookParams<'_>, _context: &Arc<CompilationContext>, ) -> Result<Option<()>> { ... } fn generate_end( &self, _context: &Arc<CompilationContext>, ) -> Result<Option<()>> { ... } fn finish( &self, _stat: &Stats, _context: &Arc<CompilationContext>, ) -> Result<Option<()>> { ... } fn update_modules( &self, _params: &mut PluginUpdateModulesHookParams, _context: &Arc<CompilationContext>, ) -> Result<Option<()>> { ... } fn module_graph_updated( &self, _param: &PluginModuleGraphUpdatedHookParams, _context: &Arc<CompilationContext>, ) -> Result<Option<()>> { ... } fn update_finished( &self, _context: &Arc<CompilationContext>, ) -> Result<Option<()>> { ... } fn handle_persistent_cached_module( &self, _module: &Module, _context: &Arc<CompilationContext>, ) -> Result<Option<bool>> { ... } fn write_plugin_cache( &self, _context: &Arc<CompilationContext>, ) -> Result<Option<Vec<u8>>> { ... }
}

Required Methods§

Source

fn name(&self) -> &str

Provided Methods§

Source

fn priority(&self) -> i32

Source

fn config(&self, _config: &mut Config) -> Result<Option<()>>

Source

fn plugin_cache_loaded( &self, _cache: &Vec<u8>, _context: &Arc<CompilationContext>, ) -> Result<Option<()>>

Source

fn build_start(&self, _context: &Arc<CompilationContext>) -> Result<Option<()>>

Source

fn resolve( &self, _param: &PluginResolveHookParam, _context: &Arc<CompilationContext>, _hook_context: &PluginHookContext, ) -> Result<Option<PluginResolveHookResult>>

Source

fn load( &self, _param: &PluginLoadHookParam<'_>, _context: &Arc<CompilationContext>, _hook_context: &PluginHookContext, ) -> Result<Option<PluginLoadHookResult>>

Source

fn transform( &self, _param: &PluginTransformHookParam<'_>, _context: &Arc<CompilationContext>, ) -> Result<Option<PluginTransformHookResult>>

Source

fn parse( &self, _param: &PluginParseHookParam, _context: &Arc<CompilationContext>, _hook_context: &PluginHookContext, ) -> Result<Option<ModuleMetaData>>

Source

fn process_module( &self, _param: &mut PluginProcessModuleHookParam<'_>, _context: &Arc<CompilationContext>, ) -> Result<Option<()>>

Source

fn analyze_deps( &self, _param: &mut PluginAnalyzeDepsHookParam<'_>, _context: &Arc<CompilationContext>, ) -> Result<Option<()>>

Source

fn finalize_module( &self, _param: &mut PluginFinalizeModuleHookParam<'_>, _context: &Arc<CompilationContext>, ) -> Result<Option<()>>

Source

fn build_end(&self, _context: &Arc<CompilationContext>) -> Result<Option<()>>

The module graph should be constructed and finalized here

Source

fn generate_start( &self, _context: &Arc<CompilationContext>, ) -> Result<Option<()>>

Source

fn optimize_module_graph( &self, _module_graph: &mut ModuleGraph, _context: &Arc<CompilationContext>, ) -> Result<Option<()>>

Some optimization of the module graph should be performed here, for example, tree shaking, scope hoisting

Source

fn analyze_module_graph( &self, _module_graph: &mut ModuleGraph, _context: &Arc<CompilationContext>, _hook_context: &PluginHookContext, ) -> Result<Option<ModuleGroupGraph>>

Analyze module group based on module graph

Source

fn partial_bundling( &self, _modules: &Vec<ModuleId>, _context: &Arc<CompilationContext>, _hook_context: &PluginHookContext, ) -> Result<Option<Vec<ResourcePot>>>

partial bundling modules to Vec

Source

fn process_resource_pots( &self, _resource_pots: &mut Vec<&mut ResourcePot>, _context: &Arc<CompilationContext>, ) -> Result<Option<()>>

process resource graph before render and generating each resource

Source

fn render_start( &self, _config: &Config, _context: &Arc<CompilationContext>, ) -> Result<Option<()>>

Source

fn render_resource_pot_modules( &self, _resource_pot: &ResourcePot, _context: &Arc<CompilationContext>, _hook_context: &PluginHookContext, ) -> Result<Option<ResourcePotMetaData>>

Source

fn render_resource_pot( &self, _resource_pot: &PluginRenderResourcePotHookParam, _context: &Arc<CompilationContext>, ) -> Result<Option<PluginRenderResourcePotHookResult>>

Transform rendered bundled code for the given resource_pot

Source

fn augment_resource_hash( &self, _render_pot_info: &ResourcePotInfo, _context: &Arc<CompilationContext>, ) -> Result<Option<String>>

Source

fn optimize_resource_pot( &self, _resource: &mut ResourcePot, _context: &Arc<CompilationContext>, ) -> Result<Option<()>>

Optimize the resource pot, for example, minimize

Source

fn generate_resources( &self, _resource_pot: &mut ResourcePot, _context: &Arc<CompilationContext>, _hook_context: &PluginHookContext, ) -> Result<Option<PluginGenerateResourcesHookResult>>

Generate resources based on the ResourcePot, return Resource and Option

Source

fn process_generated_resources( &self, _resources: &mut PluginGenerateResourcesHookResult, _context: &Arc<CompilationContext>, ) -> Result<Option<()>>

Process generated resources after the file name of the resource is hashed

Source

fn handle_entry_resource( &self, _resource: &mut PluginHandleEntryResourceHookParams<'_>, _context: &Arc<CompilationContext>, ) -> Result<Option<()>>

handle entry resource after all resources are generated and processed. For example, insert the generated resources into html

Source

fn finalize_resources( &self, _param: &mut PluginFinalizeResourcesHookParams<'_>, _context: &Arc<CompilationContext>, ) -> Result<Option<()>>

Do some finalization work on the generated resources, for example, add hash to the file name, or insert the generated resources into html

Source

fn generate_end(&self, _context: &Arc<CompilationContext>) -> Result<Option<()>>

Source

fn finish( &self, _stat: &Stats, _context: &Arc<CompilationContext>, ) -> Result<Option<()>>

Source

fn update_modules( &self, _params: &mut PluginUpdateModulesHookParams, _context: &Arc<CompilationContext>, ) -> Result<Option<()>>

Called when calling compiler.update(module_paths). Useful to do some operations like clearing previous state or ignore some files when performing HMR

Source

fn module_graph_updated( &self, _param: &PluginModuleGraphUpdatedHookParams, _context: &Arc<CompilationContext>, ) -> Result<Option<()>>

Called when calling compiler.update(module_paths). Useful to do some operations like modifying the module graph

Source

fn update_finished( &self, _context: &Arc<CompilationContext>, ) -> Result<Option<()>>

Called when calling compiler.update(module_paths). This hook is called after all compilation work is done, including the resources regeneration and finalization.

Source

fn handle_persistent_cached_module( &self, _module: &Module, _context: &Arc<CompilationContext>, ) -> Result<Option<bool>>

Source

fn write_plugin_cache( &self, _context: &Arc<CompilationContext>, ) -> Result<Option<Vec<u8>>>

Implementors§