October CMS v4.2: Vue 3, ESM & eCommerce

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 ESM export default (VueMaker handles registration)
  • oc.Modules.register() / oc.Modules.import() are replaced by ESM import / export
  • $componentName is now required on all VueComponentBase classes , an exception will be thrown if not defined
  • Editor extensions now register via oc.editorExtensions['namespace'] instead of the module system
  • Lifecycle hooks: beforeDestroybeforeUnmount, destroyedunmounted
  • Event bus: $on / $off / $emit on Vue instances replaced by mitt
  • $children removed — use template refs instead
  • Vue.set() / Vue.delete() removed — direct assignment works with Vue 3 reactivity
  • Vue.extend() replaced by oc.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.

4 Likes