Skip to content
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

Vue 3 + Vite #407

Merged
merged 136 commits into from Jul 23, 2022
Merged

Vue 3 + Vite #407

merged 136 commits into from Jul 23, 2022

Conversation

ben
Copy link
Owner

@ben ben commented Jul 9, 2022

This is an exploratory PR that changes up some of the fundamental building blocks of the system, without actually changing any UI (hopefully).

  • Upgrading to Vue 3 (this is the current version, and most resources are targeting it now)
  • Switching from Webpack to Vite (much simpler configuration, and makes reloading much easier)
  • Dropping the requirements for the dlopen and vueport Foundry plugins (instead we'll bundle all of our requirements into ironsworn.js and pull it all down in one go)

There's a lot to this, and it's going to shake up a lot of files. Here are the resources I'm referencing:

TODO

  • Update npm dependencies
    • Vue and Vite
    • Drop all the webpack libraries
    • Update scripts to use vite
      • The build will be broken until either this Vite PR lands or Dataforged drops the import assertions
  • Update readme with how to use vite
  • Vite configuration
    • Build generates ironsworn.js
    • Dev mode loads properly with HMR for Vue and proxying to Foundry
    • vite build output shakes away parts of data forged
  • Rewrite VueApplication to render using Vue 3
    • Fix drag and drop
    • Make sure clicking on images opens the image browser
    • SF character move sheet
    • SF setting-truths sheet
    • Sector sheet
  • Rewrite IronswornVueActorSheet and children
    • IS character sheet
    • SF character sheet
    • Foe sheet
    • Location sheet
    • Shared sheet
    • Site sheet
    • Starship sheet
  • Rewrite IronswornVueItemSheet and children
    • Asset sheet
    • Bondset sheet
    • SF move sheet
    • Progress sheet
  • Update components to work with Vue 3
    • Replace tabbed-panels with slot-based components
    • Replace quill-editor with tinymce-editor based on this and use core Foundry settings for it
      • Fix the image browser
  • Write a Vue3 plugin to replace the stuff in patchvue.js
  • Updating theming strategy
  • Update CHANGELOG.md

@rsek
Copy link
Collaborator

rsek commented Jul 10, 2022

from what i can tell, that vite PR is intended to drop with 3.0, which is currently in beta - not sure what the timeline is there. if we wanted to get in ahead of that, a babel plugin suggested as a workaround here: vitejs/vite#4934 (comment)

@rsek
Copy link
Collaborator

rsek commented Jul 10, 2022

some food for thought: is worth moving to vue3 composition API as the standard? i like the <script setup lang="ts"> flavour, myself.

an incremental migration might be possible - just make it part of component refactors. i'm not 100% clear on which flavours of Composition API can mix with the Options API though. but given that <script> and <script setup> can live in the same file, it might be ok.

@rsek rsek linked an issue Jul 19, 2022 that may be closed by this pull request
@ben ben marked this pull request as ready for review July 19, 2022 16:54
@ben ben merged commit 7ea1c19 into main Jul 23, 2022
@ben ben deleted the vite-vue3 branch July 23, 2022 16:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

investigate replacing quill with native editing
2 participants