From af482330e9d327ead3b4c7b4e18cae4990a290b0 Mon Sep 17 00:00:00 2001 From: Bendik Aagaard Lynghaug Date: Tue, 8 Sep 2026 20:03:09 +0200 Subject: [PATCH] fix(bankai): survive real-world CSS and serve real media types MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Lightning CSS refuses IE-era hacks (*zoom and friends) that established libraries like tachyons still carry; enable errorRecovery so bankai strips them instead of failing the build — a zero-config tool ingesting decade-old CSS should shrug, not crash. Found migrating an actual choo v7 production site. Also: proper MIME types for avif/jpg/gif/mp4/woff in the static server. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_014NgfSjHE11oFpoSnLVKLXd --- packages/bankai/lib/build.js | 3 +++ packages/bankai/lib/dev.js | 1 + packages/bankai/lib/serve.js | 6 ++++++ 3 files changed, 10 insertions(+) diff --git a/packages/bankai/lib/build.js b/packages/bankai/lib/build.js index e08ebf7..e0f42ef 100644 --- a/packages/bankai/lib/build.js +++ b/packages/bankai/lib/build.js @@ -32,6 +32,9 @@ export default async function buildApp ({ entry, outDir = 'dist', title = 'choo' appType: 'custom', plugins: [bankaiPlugin(entry, { css })], logLevel: 'warn', + // real-world stylesheets (tachyons et al) carry IE-era hacks like + // *zoom; strip them instead of refusing to build + css: { lightningcss: { errorRecovery: true } }, build: { outDir, emptyOutDir: true, diff --git a/packages/bankai/lib/dev.js b/packages/bankai/lib/dev.js index 470366c..5cf7b8c 100644 --- a/packages/bankai/lib/dev.js +++ b/packages/bankai/lib/dev.js @@ -16,6 +16,7 @@ export default async function dev ({ entry, port = 8080, title = 'choo' }) { appType: 'custom', server: { middlewareMode: true }, plugins: [bankaiPlugin(entry, { css })], + css: { lightningcss: { errorRecovery: true } }, logLevel: 'warn' }) diff --git a/packages/bankai/lib/serve.js b/packages/bankai/lib/serve.js index d84a88c..fefc6a8 100644 --- a/packages/bankai/lib/serve.js +++ b/packages/bankai/lib/serve.js @@ -31,8 +31,14 @@ const MIME = { '.map': 'application/json', '.txt': 'text/plain; charset=utf-8', '.woff2': 'font/woff2', + '.woff': 'font/woff', '.png': 'image/png', + '.jpg': 'image/jpeg', + '.jpeg': 'image/jpeg', + '.gif': 'image/gif', '.webp': 'image/webp', + '.avif': 'image/avif', + '.mp4': 'video/mp4', '.ico': 'image/x-icon' }