Building plugins
Aurelia makes it easy to create your plugins. Learn how to create individual plugins, register them, and work with tasks to run code during certain parts of the lifecycle process.
Understanding Plugin Architecture
Minimal Plugin Example
Basic Plugin Structure
// my-simple-plugin.ts
import { IContainer } from '@aurelia/kernel';
export const MySimplePlugin = {
register(container: IContainer): void {
// Register your plugin resources here
console.log('Plugin registered!');
}
};Registering the Plugin
Adding Components and Resources
Creating Configurable Plugins
Modern Configuration Pattern with .customize()
Using the Configurable Plugin
Consuming Configuration in Components
Working with App Tasks (Lifecycle Hooks)
Available Lifecycle Phases
Async App Tasks with DI
Real-World Plugin Examples
Router-like Plugin Structure
Validation-like Plugin Structure
Template and Style Handling in Plugins
Convention-Based Approach
File Structure
Component Definition
Template File
Styles File
Explicit Import Approach
Styling Strategies
Light DOM (Global Styles)
Shadow DOM with CSS
CSS Modules
Multiple Template Support
Inline Templates and Styles
When to Use Each Approach
Use Convention-Based When:
Use Explicit Imports When:
TypeScript Support
Plugin Template Recommendations
Advanced Plugin Patterns
Conditional Resource Registration
Plugin with Dynamic Imports
Plugin Composition
Best Practices
Naming Conventions
Error Handling
TypeScript Integration
Testing Plugins
Unit Testing Plugin Registration
Packaging and Distribution
Package Structure
Package.json Configuration
Mono-Repository Setup
Extending the Rendering Pipeline
Register Custom Instruction Renderers
Use IRendering for Dynamic Definitions
Provide Host Nodes via registerHostNode
Summary
Last updated
Was this helpful?