v4 (latest)
Guides
Migrating from v3 to v4

Migrating from v3 to v4

With new major version comes breaking changes. This section will guide you through the process of migrating from v3 to v4.

1. Drop support for Node.js v16

Node.js v16 is no longer supported by the Node.js team. https://github.com/nodejs/Release/#end-of-life-releases

2. Plugin execution order is now more predictable

To allow more code reuse, plugins can automatically add other plugin on which they depend. For this, they use addPlugin method of the onPluginInit hook.

const plugin: Plugin = {
  onPluginInit({ addPlugin }) {
    addPlugin(useAnotherPlugin())
  }
}

However, addPlugin method behavior was not the one expected by most users. It was adding the plugin at the end of the plugin list. This means that the added plugin hooks were executed last, after all other plugins.

In v4, the plugin is now added inplace in the plugin list. This means the added plugin hooks are executed immediately after the plugin that added them. This leads for a more predictable behaviour from an end user perspective, but can lead to unexpected results if a plugin relyed on the previous behaviour.

The best mitigation, if the plugin really need to execute some hooks last, is to split the plugin in 2 plugins and clearly state the dependency between them.