While looking over Vue.js's Quick Start example, I noticed its default set of tools included Vite. I understand it plays a role analogous but not identical to webpack in Angular's default tool set. I found webpack's documentation quite opaque, so I thought I would try to absorb what I can from Vite's documentation. I still don't understand all the history and issues involved in JavaScript build tools, but I was glad to find Vite documentation more comprehensible.

The introductory "Why Vite?" page explained Vite takes advantage of modern browser features for JavaScript code modules. As a result, the client's browser can handle some of the work that previously must be done on the developer machine via webpack & friends. However, that still leaves a smaller set of things better done up front by the developer instead of later by the client, and Vite takes care of them.

In time I'll learn enough about JavaScript to understand what all that meant, but one section caught my attention. Given Vite's focus on leveraging modern browsers, I was surprised to see "browser compatibility" section included an official plug-in @vitejs/plugin-legacy to support legacy browsers. Given my interest in writing web apps that run on my pile of old Windows Phone 8, this could be very useful!

I opened up my NodeJS test apps repository and followed Vite's "Getting Started" guide to create a new project using the "vanilla TypeScript" template preset. To verify I've got it working as expected, I built and successfully displayed the results on a current build of Google Chrome browser.

Then I added the legacy plugin and rebuilt. It bloated the distribution directory up to 80 kilobytes, which is a huge increase but still almost a third of the size of a blank Angular app and quite manageable even in space-constrained situations. And most importantly: yes, it runs on my old Nokia Lumia 920 phone with Windows Phone 8 operating system. Nice! I'm definitely tucking this away in my toolbox for later use. But for right now, I should probably get back to learning Vue.