Jovo v1 to v4 Migration Guide
Jovo v4 is a complete rewrite with a new architecture, updated handler syntax, a plugin system, and full TypeScript support. This guide covers everything you need to migrate from any earlier version to v4.
Note: Jovo v4 is not backwards compatible with v1, v2, or v3. Plan a full rewrite of your handlers and project configuration.
What Changed in v4
Component Architecture
Handlers are now organized in Components instead of a flat handler tree. Each component manages its own state, output, and sub-components โ similar to React.
Output Templates replace ask()/tell()
The old this.ask() and this.tell() methods are replaced by this.$send() with an Output Template object.
Plugin System v2
All platform integrations (Alexa, Google, Web) and third-party services (NLU, databases, CMS) are now installed as separate npm packages via the Marketplace.
Migration Steps
1. Create a new v4 project
$ npm install -g @jovotech/cli
$ jovo new my-app-v4
2. Move your handler logic into Components
// v1/v2/v3
app.setHandler({
LAUNCH() { this.tell('Hello!'); }
});
// v4
@Global() @Component()
export class GlobalComponent extends BaseComponent {
LAUNCH() { return this.$send({ message: 'Hello!' }); }
}
3. Reinstall platform plugins
$ npm install @jovotech/platform-alexa @jovotech/platform-googleassistant