Migration Build — специальная сборка Vue.js, предназначенная для упрощения процесса перехода с Vue 2 на Vue 3. Она сочетает в себе возможности Vue 3 и поддержку устаревших API, что позволяет постепенно обновлять кодовую базу без необходимости полной переработки приложения.
Совместимость с устаревшими API Migration Build включает механизмы, которые позволяют старым функциям Vue 2 работать в Vue 3. Это особенно полезно для крупных приложений, где миграция всей кодовой базы за один шаг невозможна.
Выявление проблем совместимости При использовании Migration Build приложение выводит предупреждения о deprecated API и потенциально несовместимых конструкциях. Это помогает выявлять и исправлять устаревший код по мере работы с проектом.
Пошаговая миграция Migration Build позволяет применять новую архитектуру Vue 3 постепенно, модуль за модулем, без полной остановки проекта.
Migration Build можно подключить через CDN или пакет npm. Для npm используется специальный пакет:
npm install @vue/compat
В проекте с Vite или Webpack импорт осуществляется следующим образом:
import { createApp } from 'vue/compat'
import App from './App.vue'
createApp(App).mount('#app')
Важно убедиться, что сборка проекта использует
vue/compat, а не стандартный vue.
| Особенность | Стандартная Vue 3 | Vue 3 Migration Build |
|---|---|---|
| Поддержка Vue 2 API | Нет | Да |
| Вывод предупреждений о deprecated API | Нет | Да |
| Совместимость с Vue 2 плагинами | Ограничена | Поддерживается частично |
| Размер сборки | Меньше | Чуть больше из-за дополнительных проверок |
Migration Build позволяет управлять предупреждениями, чтобы разработчик видел только актуальные проблемы:
import { configureCompat } from 'vue/compat'
configureCompat({
MODE: 2, // Активирует Vue 2 совместимость
// Настройка предупреждений
GLOBAL_MOUNT: 'warn',
GLOBAL_EXTEND: 'error',
OPTION_DATA_FN: 'warn'
})
MODE: 2 — включает режим совместимости с Vue 2.GLOBAL_MOUNT и другие параметры задают реакцию системы:
warn, error или silent.Такой подход позволяет гибко управлять процессом миграции и постепенно исправлять устаревший код.
Migration Build поддерживает большинство API Vue 2, таких как:
filtersinline-templatev-on.nativekeyCode модификаторыПри этом Vue 3 рекомендует постепенно заменять их на Composition API,
computed свойства и глобальные методы.
Пример фильтра, работающего в Migration Build:
Vue.filter('uppercase', function (value) {
if (!value) return ''
return value.toUpperCase()
})
Такой фильтр будет работать, но одновременно в консоли появится
предупреждение о том, что filters устарели.
Некоторые плагины Vue 2 могут требовать адаптации при использовании Migration Build:
vue/compat в существующем проекте Vue
2.configureCompat для контроля
предупреждений.Migration Build обеспечивает мост между двумя поколениями Vue, позволяя обновлять приложения без полной переработки и минимизируя риск поломки функционала. Он особенно полезен для крупных корпоративных проектов и постепенно модернизируемых кодовых баз.