fix(frontend): load sweep-shared.css once from main.ts — a shared <style src> breaks vite build (#3207)
CI & Build / Python lint (push) Successful in 3s
CI & Build / Plugin hooks (push) Successful in 12s
CI & Build / integration (push) Successful in 52s
CI & Build / TypeScript typecheck (push) Successful in 53s
CI & Build / Python tests (push) Successful in 1m36s
CI & Build / Build & push image (push) Canceled after 35s

plugin-vue throws "Cannot read properties of undefined (reading 'scoped')"
when several SFCs share one src stylesheet. vue-tsc passed, so only the
image job caught it; :dev has not rebuilt since 22b7a92.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-09-24 06:50:59 -04:00
co-authored by Claude Opus 5.5
parent 4a93c8b262
commit c787957ddf
6 changed files with 4 additions and 5 deletions
+1 -1
View File
@@ -6,7 +6,7 @@
* right, a small grid of facts, and a row of plain buttons. It was written
* out four times, scoped, before this sheet existed.
*
* Imported UNSCOPED (`<style src="@/assets/sweep-shared.css" />`), so every
* Imported UNSCOPED, once, from main.ts, so every
* class is prefixed `sweep-`: `.row-title`, `.lede`, `.age` and `.actions`
* also exist, scoped, in views that have nothing to do with sweeps, and an
* unprefixed global would leak into all of them. What a pane does
@@ -149,4 +149,3 @@ h2 { margin: 0; font-size: 1.05rem; }
/* A check can be a long URL or command with no break point. */
.sweep-check dd { overflow-wrap: anywhere; }
</style>
<style src="@/assets/sweep-shared.css" />
@@ -194,4 +194,3 @@ onMounted(() => store.fetchDrift());
row of facts. */
.sweep-actions { align-items: baseline; gap: var(--fs-space-3); flex-wrap: wrap; margin-top: 0; }
</style>
<style src="@/assets/sweep-shared.css" />
@@ -269,4 +269,3 @@ watch(() => props.ruleId, () => { selected.value = null; load(); });
}
h4 { margin: var(--fs-space-2) 0 0; font-size: var(--fs-size-tiny); color: var(--fs-text-tertiary); }
</style>
<style src="@/assets/sweep-shared.css" />
@@ -124,4 +124,3 @@ onMounted(reload);
overflow-wrap: anywhere;
}
</style>
<style src="@/assets/sweep-shared.css" />
+3
View File
@@ -6,6 +6,9 @@ import "./assets/theme.css";
// After theme.css — it consumes the tokens declared there.
import "./assets/components.css";
import "./assets/prose.css";
// Global rather than `<style src>` per pane: plugin-vue cannot compile one
// src stylesheet shared by several SFCs (#3207 broke the image build).
import "./assets/sweep-shared.css";
const app = createApp(App);
app.use(createPinia());