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§
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<()>>
Sourcefn build_end(&self, _context: &Arc<CompilationContext>) -> Result<Option<()>>
fn build_end(&self, _context: &Arc<CompilationContext>) -> Result<Option<()>>
The module graph should be constructed and finalized here
fn generate_start( &self, _context: &Arc<CompilationContext>, ) -> Result<Option<()>>
Sourcefn optimize_module_graph(
&self,
_module_graph: &mut ModuleGraph,
_context: &Arc<CompilationContext>,
) -> Result<Option<()>>
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
Sourcefn analyze_module_graph(
&self,
_module_graph: &mut ModuleGraph,
_context: &Arc<CompilationContext>,
_hook_context: &PluginHookContext,
) -> Result<Option<ModuleGroupGraph>>
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
Sourcefn partial_bundling(
&self,
_modules: &Vec<ModuleId>,
_context: &Arc<CompilationContext>,
_hook_context: &PluginHookContext,
) -> Result<Option<Vec<ResourcePot>>>
fn partial_bundling( &self, _modules: &Vec<ModuleId>, _context: &Arc<CompilationContext>, _hook_context: &PluginHookContext, ) -> Result<Option<Vec<ResourcePot>>>
partial bundling modules to Vec
Sourcefn process_resource_pots(
&self,
_resource_pots: &mut Vec<&mut ResourcePot>,
_context: &Arc<CompilationContext>,
) -> Result<Option<()>>
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
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>>
Sourcefn render_resource_pot(
&self,
_resource_pot: &PluginRenderResourcePotHookParam,
_context: &Arc<CompilationContext>,
) -> Result<Option<PluginRenderResourcePotHookResult>>
fn render_resource_pot( &self, _resource_pot: &PluginRenderResourcePotHookParam, _context: &Arc<CompilationContext>, ) -> Result<Option<PluginRenderResourcePotHookResult>>
Transform rendered bundled code for the given resource_pot
fn augment_resource_hash( &self, _render_pot_info: &ResourcePotInfo, _context: &Arc<CompilationContext>, ) -> Result<Option<String>>
Sourcefn optimize_resource_pot(
&self,
_resource: &mut ResourcePot,
_context: &Arc<CompilationContext>,
) -> Result<Option<()>>
fn optimize_resource_pot( &self, _resource: &mut ResourcePot, _context: &Arc<CompilationContext>, ) -> Result<Option<()>>
Optimize the resource pot, for example, minimize
Sourcefn generate_resources(
&self,
_resource_pot: &mut ResourcePot,
_context: &Arc<CompilationContext>,
_hook_context: &PluginHookContext,
) -> Result<Option<PluginGenerateResourcesHookResult>>
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
Sourcefn process_generated_resources(
&self,
_resources: &mut PluginGenerateResourcesHookResult,
_context: &Arc<CompilationContext>,
) -> Result<Option<()>>
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
Sourcefn handle_entry_resource(
&self,
_resource: &mut PluginHandleEntryResourceHookParams<'_>,
_context: &Arc<CompilationContext>,
) -> Result<Option<()>>
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
Sourcefn finalize_resources(
&self,
_param: &mut PluginFinalizeResourcesHookParams<'_>,
_context: &Arc<CompilationContext>,
) -> Result<Option<()>>
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
fn generate_end(&self, _context: &Arc<CompilationContext>) -> Result<Option<()>>
fn finish( &self, _stat: &Stats, _context: &Arc<CompilationContext>, ) -> Result<Option<()>>
Sourcefn update_modules(
&self,
_params: &mut PluginUpdateModulesHookParams,
_context: &Arc<CompilationContext>,
) -> Result<Option<()>>
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
Sourcefn module_graph_updated(
&self,
_param: &PluginModuleGraphUpdatedHookParams,
_context: &Arc<CompilationContext>,
) -> Result<Option<()>>
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
Sourcefn update_finished(
&self,
_context: &Arc<CompilationContext>,
) -> Result<Option<()>>
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.