neanes / neanes

Neanes is a free and open source scorewriter for notating Byzantine chant in Byzantine notation.
https://neanes.github.io/neanes/
GNU General Public License v3.0
35 stars 9 forks source link

Migrate from Webpack to Vite #150

Closed basil closed 10 months ago

basil commented 10 months ago

Fixes #116. At the moment I am not aware of any problems on this branch. Tested by running the Linux AppImage production build and verifying that I could play my existing scores and create new scores.

basil commented 10 months ago

I guess with this PR we've lost Typescript static analysis? I tried to add it back with

diff --git a/package.json b/package.json
index 61fc7e2..b8a42e9 100644
--- a/package.json
+++ b/package.json
@@ -16,8 +16,8 @@
   },
   "scripts": {
     "dev": "vite",
-    "build": "vite build && electron-builder",
-    "release": "vite build && electron-builder",
+    "build": "vue-tsc --noEmit && vite build && electron-builder",
+    "release": "vue-tsc --noEmit && vite build && electron-builder",
     "lint": "eslint --ext .js,.ts,.vue --ignore-path .gitignore src",
     "docs:dev": "vitepress dev docs",
     "docs:build": "vitepress build docs",
@@ -71,7 +71,8 @@
     "vite-plugin-electron-renderer": "^0.14.5",
     "vite-plugin-eslint": "^1.8.1",
     "vitepress": "^1.0.0-beta.5",
-    "vitest": "^0.33.0"
+    "vitest": "^0.33.0",
+    "vue-tsc": "^1.8.4"
   },
   "license": "GPL-3.0",
   "packageManager": "npm@9.5.1"

but there were hundreds of Typescript errors. I guess the newer build toolchain is more strict?

danielgarthur commented 10 months ago

Vue 3 now checks the templates. I figured there could be a separate PR to fix the errors. These are things like :style bindings should now take a StyleValue object instead of a CSSStyleDeclaration. And the editor now needs a bunch of typecasting in the templates, which I don't even think was possible in Vue 2.

basil commented 10 months ago

OK, I will leave this PR as-is then and file follow-up issues to cover vue-tsc and Vite PWA.

basil commented 10 months ago

Another thing I have just noticed is the print feature appears to be broken on this branch.

basil commented 10 months ago

I tracked down the printing problem to https://github.com/electron/electron/issues/39025. Downgraded Electron to 24.x and printing works again.

basil commented 10 months ago

I spent a few hours in this build today composing Axion Estins and did not come across any new problems.

danielgarthur commented 10 months ago

I tested the latest installers and executables on Windows and Mac, so I think it's good to go.