
So my main project at work is a Vue 2 and Vuetify 2 site, but privately I have been playing with Vue 3 and loved the Composition API to avoid mixins. Due to some new features, we are planning to build soon. I wanted to write it in Vue 3, to prevent needing to migrate it later.
I wanted to investigate how to migrate from Vue 2 to Vue 3. Furthermore, I planned to use the amazing Migration Build to allow Vue 3 to use most Vue 2 components during a migration period. Which is much less risky for a large project.
I took a rough hack at doing the migration leaving only a handful of pages to test over a day to see how likely the migration was. I had to upgrade Vuetify from 2.X.X to an early beta version of 3.X.X. However I was unable to get anything more than a few v-cards and v-btn was working. A peer on another work team had said as much, but I hadn't listened. My bad.
Unfortunately, Vuetify is not ready for Vue 3 as of 2021-12-18. I tried the beta @vuetify/nightly, but it's far from ready. The documentation said it's to ship in February but looking at the missing functionality I doubted it.
I joined the discord community and got caught up on the most recent updates. Basicity it's going to take a little longer which is ok. It's open source and it's not like I've contributed any pull requests. It's been a great framework and recommend it to everyone.
I'll update this post when it is ready and has support for Vue 3.
So the dream would be to get to vue 3, but that's not practical without Vuetify. That leaves two options:
Vuetify with a different component frameworkVue 3 and keep Vuetify 2.X.XTo be clear, replacing Vuetify has almost no upside for my employer.
So it's pretty easy to decide to wait on migrating to Vue 3 and Vuetify 3.
Thinking about the problem I realized that also of the migration and benefits of the migration to vue 3 was the improvement of the tooling. Vite is so fast you have to see to believe. I follow Evan You and Anthony Fu on twitter so have been watching it come to life.
So I decided to try to migrate to vite and allow the @vue/composition-api with vue 2. This would also make it easier to upgrade to Vue 3 once it's ready.
So the new goal looks like this.
vue 2 and vuetify 2.X.X@vue/cli-servicewebpackbabelvite@vue/composition-apiThis gives a lot of benefits and a clear upgrade path!
It was pretty easy to clone a simple example repo with vue 2 and vuetify 2.X.X with @vue/cli-service. And tested out the upgrade there.
Once that worked I then did the upgrade on the more complex monorepo at work.
With Vue 2.7 "Naruto" Released I'm now on Vue 2.7 and was able to remove the @vue/composition-api!