We’re happy to announce that October CMS v4.2 is releasing this month. This is a significant update that brings several major changes:
- Vue 3 Migration: The backend has been fully upgraded from Vue 2 to Vue 3
- ESM Module Support: JavaScript assets now use native ES modules
- eCommerce: Yes, finally!
For Plugin Authors Using Vue Components
If your plugin registers Vue components (via VueComponentBase), editor extensions, or uses any Vue-related JavaScript, this update will require changes to your code.
What changed:
-
Vue.component()global registration is replaced by ESMexport default(VueMaker handles registration) -
oc.Modules.register()/oc.Modules.import()are replaced by ESMimport/export -
$componentNameis now required on allVueComponentBaseclasses , an exception will be thrown if not defined - Editor extensions now register via
oc.editorExtensions['namespace']instead of the module system - Lifecycle hooks:
beforeDestroy→beforeUnmount,destroyed→unmounted - Event bus:
$on/$off/$emiton Vue instances replaced by mitt -
$childrenremoved — use template refs instead -
Vue.set()/Vue.delete()removed — direct assignment works with Vue 3 reactivity -
Vue.extend()replaced byoc.createVueApp() - Complex class instances in reactive data should use
Vue.markRaw()to prevent browser freezing
Recommended Composer strategy:
First, release a patch to your current major version that pins compatibility before v4.2. This prevents breaking sites when they update:
"october/rain": "^3.0 || ^4.0 <4.2"
Then, release a new major version with Vue 3 support that requires v4.2:
"october/rain": "^4.2"
The key is to get that pinned patch out as soon as possible so existing users are protected while they plan their upgrade.
We’ll be sharing more detailed migration guidance and documentation closer to release. If you have questions, don’t hesitate to reach out.