-
Notifications
You must be signed in to change notification settings - Fork 262
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Create Vue3 migration script: upgrade libraries, configuration, syntax and tools (extension ready) #9541
Comments
@rak-phillip will update this with his own discoveries of Vue3 work that has been back ported to Vue 2.7. @cnotv to dig up more recent reference links to our CI since the ones listed here have expired due to age. |
Based on the backported features listed for the Vue 2.71 release, there are at least two items in the list above that we can break out into separate PRs and address today: All typed Vue files which use Vue.extend now return Property 'extend' does not exist on type 'typeofWe can transition to Property '$emit' does not exist on typeWithout the logs, I'm making the assumption that this error has to deal with the fact existing components aren't explicitly declaring emitted events. Vue 2.7 supports the Footnotes |
Is it that convenient at this point to modify such a huge amount of files in multiple iterations and face all these conflicts in code? Without count that maybe is not so easy a simple text replacement from the IDE, due to the closing brackets. Perhaps the If I have to work all these issues, I'll rather do it altogether as this would not hinder me, plus we may have a proper generic migration script for other cases. |
Updated URL due CI log expiration, it points to local branch on push due new issue crossed due merge to master. |
Breaking down the tasks into smaller PRs has its merits. I find that focusing on a limited scope makes conflict resolution more manageable, and I believe smaller and more focused PRs will be easier to reason about, considering the complexity of the changes.
You definitely raise a valid point here, but it's my position that w can alleviate some issues related to identifying bugs if we focus on smaller, more manageable tasks due to the overall complexity of the Vue 3 migration.
It's entirely valid to tackle all the issues together. My suggestion to break it into smaller tasks was aimed at providing us with items that we can start merging today based on what Vue 2.7 provides us out of the box. Smaller tasks also introduce the potential for others to contribute. I don't intend to dictate the workflow, and if an all-encompassing approach works best for you, that's absolutely fine 🙂 |
Ok I agree 100% with what you state, so let's create the issue with these 2 points and see if anyone wants to contribute, which is always welcome 😍 |
I created #10104 to address I'm holding off on creating anything related to
I'll comb through the logs and the migration guide to see if there's anything else that we can potentially pick up in the near term. |
It seems more like a Vue reason: https://eslint.vuejs.org/rules/require-explicit-emits.html |
@codyrancher @nwmac There's these points which still use |
Description
As defined in the finding, create a script able to replace all the indicated issues.
TODO
Update Jest syntaxExisting library seems sufficient so farAdd auto ignore TS and enable by configuration for all non breaking issuesNot recommended after experiencing itContext
From the report, here copied the parts of code:
Extensions
Given the need to migrate also the extensions, the script will also have to run through the affected parts which have to be modified manually and return a message/error or generate a log.
Vue + Typescript
(mostly to be corrected on Epinio, which is now removed?)
Cannot find module 'vue/types/vue'
, not sure if TSConfig issue or migration changeCannot find module 'vue/types/options'
, not sure if TSConfig issue or migration changeVue.extend
now returnProperty 'extend' does not exist on type 'typeof
Vue.extend
issueProperty '$emit' does not exist on type
Cannot use namespace 'Router' as a type.
Property 'extend' does not exist on type 'typeof import
Jest
@vue/vue2-jest
TypeError: Cannot read properties of undefined (reading 'prototype')
, from i18n globalVue.prototype.t
(reported in draft PR CI)Issues after recent merge to master
After all these months a rebase to master generate error
Error: Cannot find module 'html-webpack-plugin'
. It may be related to wrong conflicts resolution.The text was updated successfully, but these errors were encountered: