Packaging und Distribution
Stream Deck Plugins werden als .streamDeckPlugin-Installer-Dateien verteilt, die aus dem kompilierten *.sdPlugin-Verzeichnis generiert werden.
1. Vor dem Packen bauen​
npm run build
Dann validieren:
streamdeck validate com.example.deploy-tools.sdPlugin
Dann packen:
streamdeck pack com.example.deploy-tools.sdPlugin
Der Pack-Befehl validiert die begleitenden Dateien, bĂĽndelt das Plugin-Verzeichnis und gibt eine .streamDeckPlugin-Installer-Datei aus.
2. Was in *.sdPlugin gehört​
com.example.deploy-tools.sdPlugin/
├── bin/
│ └── plugin.js
├── imgs/
├── logs/
├── ui/
│ └── deploy.html
└── manifest.json
EinschlieĂźen:
- kompiliertes JavaScript,
- Property-Inspector-HTML und lokale Assets,
- Icons und Bilder,
- Manifest,
- vom Plugin benötigte Runtime-Dateien.
AusschlieĂźen:
- Source Maps, falls nicht beabsichtigt,
- Tests,
- lokale Notizen,
.env-Dateien,- private SchlĂĽssel,
- generierte Caches,
- reine Entwicklungs-Logs.
Nutze .sdignore, um Dateien vom Packen auszuschlieĂźen. Es folgt .gitignore-artigen Mustern.
3. Lokaler Installationstest​
Bevor du ein Plugin teilst:
- Stoppe den Watch-Prozess.
- Baue aus einem sauberen Quellbaum.
- Packe das Plugin.
- Installiere die generierte
.streamDeckPlugin. - Starte Stream Deck neu.
- FĂĽge jede Action zu einem neuen Profil hinzu.
- Ă–ffne jeden Property Inspector.
- Teste frische Einstellungen und importierte/alte Einstellungen.
- Teste nach einem Neustart der Stream Deck App.
- Teste auf Windows und macOS, wenn du beide unterstĂĽtzt.
4. DRM-Bereitschaft​
Elgatos Distributions-Doku beschreibt DRM-Schutz fĂĽr ĂĽber den Marketplace verteilte Plugins. Die aktuelle Doku merkt an:
- Node.js-Plugins benötigen
@elgato/streamdeckv2 oder neuer für DRM-Bereitschaft. - Verteilte Plugin-Dateien sind unveränderlich.
- Das Manifest ist geschĂĽtzt und sollte nicht als Runtime-Konfiguration gelesen werden.
- DRM-Schutz wird nach dem Upload und der Verarbeitung in der Maker Console angewendet.
Praktische Regel: Entwirf niemals Runtime-Verhalten rund um das Verändern gepackter Dateien.
Mach stattdessen dies:
- speichere Runtime-Zustand in Action-Einstellungen,
- generiere Runtime-Dateien auĂźerhalb des Plugin-Bundles,
- halte nicht sensible Konstanten in einer separaten JSON-Datei oder eingebettetem Code,
- nutze OS-Level-Speicher fĂĽr Geheimnisse.
5. Marketplace-Checkliste​
Vor der Einreichung:
- Validiere das Plugin.
- Nutze stabile UUIDs.
- PrĂĽfe Plugin- und Action-Namen auf Klarheit.
- Stelle gute Icons und Galeriematerial bereit.
- Stelle sicher, dass Bilder auf physischer Hardware nicht unscharf sind.
- Stelle sicher, dass Property Inspectors offline funktionieren, wenn sie lokale Assets nutzen.
- Stelle sicher, dass keine Geheimnisse oder lokalen Pfade gepackt werden.
- Stelle sicher, dass Logs keine sensiblen Daten preisgeben.
- Sieh dir Elgatos aktuelle Plugin-Richtlinien an.
- Lade ĂĽber die Maker Console hoch.
6. Versionierung​
Nutze eine klare Versionierungsrichtlinie:
1.0.0.0 initial release
1.0.1.0 bug fix
1.1.0.0 new action or non-breaking behavior
2.0.0.0 breaking behavior or settings migration
Ändere keine UUIDs, wenn du eine neue Version veröffentlichst.
7. Vorlage für Release Notes​
## 1.1.0.0
Added:
- New Deploy Status action.
Changed:
- Improved production confirmation copy.
Fixed:
- Prevented stale titles after Stream Deck restart.
Compatibility:
- Requires Stream Deck 7.1 or newer.
8. Schnelles Smoke-Test-Skript​
npm run build
streamdeck validate com.example.deploy-tools.sdPlugin
streamdeck pack com.example.deploy-tools.sdPlugin
FĂĽhre das vor jedem Release-Kandidaten aus.