Support plugins
Create a new interface for plugins with the following requirements:
- Plugins are normal js file. They can be regular node_modules
- Plugins folder can be specified
- Plugins can be disabled one by one (by configuration)
- Plugins can be totally disabled (by configuration)
- Plugins can apply to 0 or many lifecycle events
- Plugin can return errors and stop pipeline process
The lifecycle events will be specified later.
Plugins are not thought for general public use at the first time. They will be advertised later.