Implement custom Vue.js 3 compiler to simplify migration

What does this MR do and why?

This MR is part of vue3-migration

As a part of vue3-migration and respecting iteration value we want to run migration not introducing avoidable changes in codebase (in other words we do not want to split code for "vue.js 2" and "vue.js 3" as much as possible Vue.js 3 templates have two major differences compared to Vue.js 2

This MR addresses first point

Additionally it introduces temporary workaround for https://github.com/vuejs/core/issues/7725 which also affects us

How to set up and validate locally

  • run VUE_VERSION=3 yarn webpack. Compaining error messages should be related only to <template functional> which will be addressed in follow-up

Additionally, this should results in less tests failing due to compiler error

Here comes comparison of running VUE_VERSION=3 yarn jest with and without this MR (note: if you want to reproduce these stats locally you will need Introduce markRaw helper (!114063 - merged) merged, otherwise tests with Vue.js 3 will be stuck in infinite loop)

Without custom compiler With this MR
🔴 Failed test suites 1196 1120
🔴 Failed tests 6708 7498 This is fine! We have more test suites being run, so more failing tests are ok and expected
💚 Passed tests 35400 36682
🗒 Total tests 42212 44285 More tests are run because compiler is not failing 🎉

MR acceptance checklist

This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.

Edited by Illya Klymov

Merge request reports

Loading