Tu empresa tiene una app Vue 2 con Options API, Vuex y 150 componentes. La directiva es migrar a Vue 3 con Composition API y Pinia. ¿Cuál es tu estrategia sin parar el desarrollo?
Contexto
Plataforma de e-learning con 6 developers. Releases semanales. El equipo tiene experiencia variada: 2 seniors con Vue 3, 4 mid-levels que solo conocen Vue 2. No puedes hacer un freeze de features de más de 1 sprint.
Respuesta modelo
Migración incremental en 4 fases: Fase 1 (Sprint 1-2): 1) Usar @vue/compat (modo compatibilidad) para correr Vue 2 code en Vue 3 runtime. 2) Actualizar build tools a Vite. 3) Reemplazar vue-class-component si se usa. Fase 2 (Continuo): 4) Cada nuevo componente se escribe en Composition API con <script setup>. 5) Crear composables equivalentes a los mixins existentes. 6) ESLint rule: prohibir nuevos archivos con Options API. Fase 3 (2-3 sprints): 7) Migrar Vuex a Pinia módulo por módulo — Pinia y Vuex pueden coexistir. 8) Empezar por stores con menos dependencias. Fase 4: 9) Migrar componentes existentes oportunistamente (cuando tocas uno, lo conviertes). 10) Workshop semanal de 1h para mid-levels.
Claves
- @vue/compat permite migrar sin romper nada desde el día 1.
- Pinia y Vuex coexisten: migración store por store.
- Invertir en formación del equipo (workshops) es parte de la migración.