[PR #5379] [MERGED] 🛠️ Moving loot-core to Vite #5904

Closed
opened 2026-02-28 21:20:40 -06:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/actualbudget/actual/pull/5379
Author: @MikesGlitch
Created: 7/23/2025
Status: Merged
Merged: 8/13/2025
Merged by: @MikesGlitch

Base: masterHead: vite-loot-core


📝 Commits (10+)

📊 Changes

22 files changed (+1001 additions, -1077 deletions)

View changed files

📝 .github/workflows/size-compare.yml (+1 -1)
📝 packages/crdt/src/index.ts (+11 -2)
📝 packages/desktop-client/package.json (+0 -4)
📝 packages/loot-core/bin/build-api (+2 -2)
📝 packages/loot-core/bin/build-browser (+3 -16)
📝 packages/loot-core/package.json (+5 -9)
packages/loot-core/peg-loader.js (+0 -9)
📝 packages/loot-core/src/server/budgetfiles/app.ts (+3 -0)
📝 packages/loot-core/src/server/polyfills.ts (+27 -1)
📝 packages/loot-core/src/server/rules/index.ts (+1 -1)
📝 packages/loot-core/src/server/schedules/app.ts (+1 -1)
📝 packages/loot-core/src/server/schedules/find-schedules.ts (+1 -1)
📝 packages/loot-core/src/server/util/rschedule.ts (+4 -0)
packages/loot-core/vite.api.config.ts (+62 -0)
packages/loot-core/vite.config.ts (+120 -0)
packages/loot-core/vite.desktop.config.ts (+60 -0)
📝 packages/loot-core/vitest.config.ts (+1 -1)
packages/loot-core/webpack/webpack.api.config.js (+0 -27)
packages/loot-core/webpack/webpack.browser.config.js (+0 -117)
packages/loot-core/webpack/webpack.desktop.config.js (+0 -48)

...and 2 more files

📄 Description

Warning

This is worth bringing the branch down and testing locally.

Main benefits:

  • Faster build time
  • Consistent build tooling (we no longer use both vite and webpack)

Todos

  • check the size of the loot-core bundle and make sure it's not massive - add screenshots of before and after to this pr
  • fix the api tests - no idea why they're broken - it seemed to work when I called it outside the test harness...
  • check web
  • check electron
    • Windows
    • Linux
    • Mac
  • check api
  • consolidate the vite versions
  • check different browsers/mobile - make sure updating the bundler hasn't made it incompatible
  • publish the api npm package and test it
  • check the sync-server (ideally via the npm package)

Old Browser loot-core size:
image

New Browser loot-core size:
image

Old API loot-core size:
image

New API loot-core size:
image

Old Electron size:
image

New Electron size:
image


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/actualbudget/actual/pull/5379 **Author:** [@MikesGlitch](https://github.com/MikesGlitch) **Created:** 7/23/2025 **Status:** ✅ Merged **Merged:** 8/13/2025 **Merged by:** [@MikesGlitch](https://github.com/MikesGlitch) **Base:** `master` ← **Head:** `vite-loot-core` --- ### 📝 Commits (10+) - [`4cb6e6c`](https://github.com/actualbudget/actual/commit/4cb6e6cc315651d98c0fd807249d1f54b4050124) loot core vite migration - [`cfbe337`](https://github.com/actualbudget/actual/commit/cfbe337794c6573e4c4d73c76d1ebfe8b972560e) hmm - [`fa1012f`](https://github.com/actualbudget/actual/commit/fa1012fcaf243d94fff907e9d7dfeb02b139be28) still issues - [`ed184fd`](https://github.com/actualbudget/actual/commit/ed184fd6363ed1e2b5d8b06f6a063dba076683d1) close but no cigar - [`7553a8b`](https://github.com/actualbudget/actual/commit/7553a8b0d5433724940bfd29a01dbc831fea9fec) booyakasha - [`1a94ebc`](https://github.com/actualbudget/actual/commit/1a94ebc51542a154a253a26c008a80913c6fdf3c) Merge branch 'master' of https://github.com/MikesGlitch/actual into vite-loot-core - [`d4af31d`](https://github.com/actualbudget/actual/commit/d4af31dd941f066fa0d5fa28156409f8ad296b4f) imagine doing this on a wednesday night - [`985dcd1`](https://github.com/actualbudget/actual/commit/985dcd1a7a1221bce2931e9d7343a8c1e12c315c) whats a peggy file anyway - [`3285f07`](https://github.com/actualbudget/actual/commit/3285f07f42912969383c64feb65fb8a904561fed) rough - [`ee934cd`](https://github.com/actualbudget/actual/commit/ee934cd7e26f5c24b80f5cd81bcbd1f945525438) if youre reading this you smell ### 📊 Changes **22 files changed** (+1001 additions, -1077 deletions) <details> <summary>View changed files</summary> 📝 `.github/workflows/size-compare.yml` (+1 -1) 📝 `packages/crdt/src/index.ts` (+11 -2) 📝 `packages/desktop-client/package.json` (+0 -4) 📝 `packages/loot-core/bin/build-api` (+2 -2) 📝 `packages/loot-core/bin/build-browser` (+3 -16) 📝 `packages/loot-core/package.json` (+5 -9) ➖ `packages/loot-core/peg-loader.js` (+0 -9) 📝 `packages/loot-core/src/server/budgetfiles/app.ts` (+3 -0) 📝 `packages/loot-core/src/server/polyfills.ts` (+27 -1) 📝 `packages/loot-core/src/server/rules/index.ts` (+1 -1) 📝 `packages/loot-core/src/server/schedules/app.ts` (+1 -1) 📝 `packages/loot-core/src/server/schedules/find-schedules.ts` (+1 -1) 📝 `packages/loot-core/src/server/util/rschedule.ts` (+4 -0) ➕ `packages/loot-core/vite.api.config.ts` (+62 -0) ➕ `packages/loot-core/vite.config.ts` (+120 -0) ➕ `packages/loot-core/vite.desktop.config.ts` (+60 -0) 📝 `packages/loot-core/vitest.config.ts` (+1 -1) ➖ `packages/loot-core/webpack/webpack.api.config.js` (+0 -27) ➖ `packages/loot-core/webpack/webpack.browser.config.js` (+0 -117) ➖ `packages/loot-core/webpack/webpack.desktop.config.js` (+0 -48) _...and 2 more files_ </details> ### 📄 Description <!-- Thank you for submitting a pull request! Make sure to follow the instructions to write release notes for your PR — it should only take a minute or two: https://github.com/actualbudget/docs#writing-good-release-notes. Try running yarn generate:release-notes *before* pushing your PR for an interactive experience. --> > [!WARNING] > This is worth bringing the branch down and testing locally. ## Main benefits: - Faster build time - Consistent build tooling (we no longer use both vite and webpack) ## Todos - [x] check the size of the loot-core bundle and make sure it's not massive - add screenshots of before and after to this pr - [x] fix the api tests - no idea why they're broken - it seemed to work when I called it outside the test harness... - [x] check web - [x] check electron - [x] Windows - [x] Linux - [x] Mac - [x] check api - [x] consolidate the vite versions - [x] check different browsers/mobile - make sure updating the bundler hasn't made it incompatible - [x] publish the api npm package and test it - [x] check the sync-server (ideally via the npm package) Old Browser loot-core size: <img width="689" height="173" alt="image" src="https://github.com/user-attachments/assets/717a2e36-c364-4964-a735-782250557228" /> New Browser loot-core size: <img width="653" height="161" alt="image" src="https://github.com/user-attachments/assets/7aa9a4b8-cc46-4424-9ee1-a07bfc5952ea" /> Old API loot-core size: <img width="674" height="183" alt="image" src="https://github.com/user-attachments/assets/db460913-3201-4453-9d3d-9d51ccd344c5" /> New API loot-core size: <img width="779" height="214" alt="image" src="https://github.com/user-attachments/assets/19545b80-81f4-48ea-8060-45bf80002c91" /> Old Electron size: <img width="662" height="139" alt="image" src="https://github.com/user-attachments/assets/2f3bc4f8-727a-4d62-82f0-b6b9e5c4f8c9" /> New Electron size: <img width="733" height="180" alt="image" src="https://github.com/user-attachments/assets/622496b9-4960-4061-bd2c-bf91d995d8ba" /> --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-02-28 21:20:40 -06:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/actual#5904