refactor: Replace Rollup with Vite (#2656)

This is a high risk change: every byte the card ships is emitted by a
different bundler, minified by a different minifier, and every
stylesheet is compiled by a different sass. The intent is that the
card's behaviour is unchanged.

**Significant development win**: Build time drops from 24s to 1.1s 🎉 

Also adds a test suite ('dist') that runs against the built bundle.
This commit is contained in:
Dermot Duffy
2026-08-04 15:00:13 -07:00
committed by GitHub
parent 06bcfd58ba
commit 80ec92e3b2
105 changed files with 1273 additions and 1719 deletions
+5 -5
View File
@@ -1,16 +1,16 @@
import { readFileSync } from 'node:fs';
/**
* Rollup/Vite plugin: importing an SVG yields `{ path, viewBox }` extracted at
* build time, the shape a Home Assistant custom iconset serves. The SVG must
* be a single-path icon.
* Vite plugin: importing an SVG yields `{ path, viewBox }` extracted at build
* time, the shape a Home Assistant custom iconset serves. The SVG must be a
* single-path icon.
*
* @type {() => import('rollup').Plugin}
* @type {() => import('vite').Plugin}
*/
export const svgPath = () => ({
name: 'svg-path',
// Vite: run before its builtin asset handling.
// Run before Vite's builtin asset handling.
enforce: 'pre',
load(id) {