Zum Hauptinhalt springen

Packaging und Distribution

Nur das kompilierte Plugin packen

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:

  1. Stoppe den Watch-Prozess.
  2. Baue aus einem sauberen Quellbaum.
  3. Packe das Plugin.
  4. Installiere die generierte .streamDeckPlugin.
  5. Starte Stream Deck neu.
  6. FĂĽge jede Action zu einem neuen Profil hinzu.
  7. Ă–ffne jeden Property Inspector.
  8. Teste frische Einstellungen und importierte/alte Einstellungen.
  9. Teste nach einem Neustart der Stream Deck App.
  10. 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/streamdeck v2 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.