refactor(admin): ein Vue-Global für beide Runtimes - #174
Merged
Conversation
Vue lag bisher an zwei Orten: window.CalloraVue in der Surface-Runtime, CalloraAdmin.vue in der Admin-Shell. Ein Plugin-Bundle ist gegen genau einen davon gebaut — und damit an eine der beiden Welten gefesselt. Der Canvas des Composers ist der Fall, an dem das zählt: Er läuft in der Admin-Shell und rendert Surface-Blöcke. Mit zwei Namen gäbe es entweder zwei Vue-Instanzen — womit Reaktivität über die Grenze stillschweigend aufhört, ohne Fehlermeldung — oder Blöcke, die im Editor nicht laufen. Beide Runtimes stellen jetzt CalloraVue bereit, beide Presets mappen dorthin. Der Name enthält bewusst keinen Punkt: CalloraAdmin.vue sagte schon in der Schreibweise, dass das Global einer Runtime gehört. Ersetzt, nicht aliasiert. Es gibt keine fremden Bundles, und ein Alias, den niemand braucht, wäre nur ein zweiter Weg zum selben Ziel — und die Sorte technischer Schuld, die niemand mehr entfernt, weil sie nichts kostet. Ein Test vergleicht, worauf beide Presets mappen. Sie liegen in getrennten Paketen ohne gemeinsamen Code; das Surface-Preset im Admin zu importieren hieße, eine Abhängigkeit zwischen zwei bewusst getrennten Paketen einzuführen, um eine Zeichenkette zu vergleichen. Also ein Quelltextvergleich — die Gegenprobe belegt, dass er bei divergierenden Namen rot wird. Das Communication-Bundle gebaut und geprüft: es referenziert jetzt CalloraVue. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
1. Why is this change necessary?
Vue lag an zwei Orten:
window.CalloraVuein der Surface-Runtime,CalloraAdmin.vuein derAdmin-Shell. Ein Plugin-Bundle ist gegen genau einen davon gebaut — und damit an eine der beiden
Welten gefesselt.
Der Canvas des Composers ist der Fall, an dem das zählt: Er läuft in der Admin-Shell und
rendert Surface-Blöcke. Mit zwei Namen gäbe es entweder zwei Vue-Instanzen — womit Reaktivität
über die Grenze stillschweigend aufhört, ohne Fehlermeldung — oder Blöcke, die im Editor nicht
laufen.
Voraussetzung für Baustein 7 (§7.6, Bedingung 1).
2. What does this change do, exactly?
Beide Runtimes stellen
CalloraVuebereit, beide Presets mappen dorthin. Der Name enthältbewusst keinen Punkt:
CalloraAdmin.vuesagte schon in der Schreibweise, dass das Globaleiner Runtime gehört.
Ersetzt, nicht aliasiert. Es gibt keine fremden Bundles, und ein Alias, den niemand braucht,
wäre nur ein zweiter Weg zum selben Ziel — die Sorte technischer Schuld, die niemand mehr
entfernt, weil sie nichts kostet.
Ein Test vergleicht, worauf beide Presets mappen. Sie liegen in getrennten Paketen ohne
gemeinsamen Code; das Surface-Preset im Admin zu importieren hieße, eine Abhängigkeit zwischen
zwei bewusst getrennten Paketen einzuführen, um eine Zeichenkette zu vergleichen. Also ein
Quelltextvergleich — die Gegenprobe belegt, dass er bei divergierenden Namen rot wird.
3. Describe each step to reproduce the issue or behaviour.
Auf
mainist ein Admin-Bundle gegenCalloraAdmin.vuegebaut und findet auf einer Surfacenichts; ein Surface-Bundle gegen
CalloraVuefindet im Admin nichts. Beide scheitern still —Rollup lässt das externe Symbol undefiniert, und das fällt erst beim ersten Render auf.
Auf diesem Branch bauen beide gegen denselben Namen. Verifiziert am echten Konsumenten:
4. Please link to the relevant issues (if any).
Setzt §7.6 Bedingung 1 des Composer-Designs um.
Zahlen
6 Dateien. Admin 521 Tests (vorher 518), Surface-Runtime 99, .NET 1932 + 29 — alle grün, und
das Communication-Bundle gebaut und geprüft.
Was für den Canvas noch fehlt
tokens.scssbewusstCustom Properties statt SCSS-Variablen nutzt; der Aufwand liegt bei Plugin-Themes, deren CSS auf
:rootzielt.