Vite 5, and the Node 18 minimum

The November release drops Node 16, which reached end of life in September, and the upgrade was mostly about the runtime rather than the tool.

what the upgrade required:
  Node 18 or 20                     one CI line
  Rollup 4 — plugin compatibility   two plugins updated
  the CJS build of the Node API     deprecated; we did
                                    not use it
  define replacing process.env      already correct

build time, same project:  8.4s → 7.1s

what took the longest: a plugin with no Rollup 4 release,
replaced by twelve lines of a custom transform.

A major version whose breaking changes are mostly the dropping of dead runtimes is the easy kind, and the plugin ecosystem is where the real work is — one unmaintained plugin can hold a project back for months. Replacing it with a small local transform was faster than waiting and removed a dependency, which is the outcome to look for when a plugin does one small thing.