Übersicht
Sobald Ihre App lokal gebaut und getestet wurde, haben Sie zwei Möglichkeiten, sie zu verteilen:- Einen Tarball bereitstellen — Laden Sie Ihre App direkt auf einen bestimmten Twenty-Server für die interne oder private Nutzung hoch.
- Auf npm veröffentlichen — führen Sie Ihre App im Twenty-Marktplatz auf, damit jeder Arbeitsbereich sie entdecken und installieren kann.
Erstellen Ihrer App
Führen Sie den Build-Befehl aus, um Ihre App zu kompilieren und eine distributionsfertigemanifest.json zu erzeugen:
.twenty/output/ geschrieben. Fügen Sie --tarball hinzu, um zusätzlich ein .tgz-Paket für die manuelle Verteilung oder den Deploy-Befehl zu erzeugen.
Bereitstellung auf einem Server (Tarball)
Für Apps, die Sie nicht öffentlich verfügbar machen möchten — proprietäre Tools, ausschließlich für Unternehmen bestimmte Integrationen oder experimentelle Builds — können Sie einen Tarball direkt auf einem Twenty-Server bereitstellen.Voraussetzungen
Bevor Sie bereitstellen, benötigen Sie ein konfiguriertes Remote, das auf den Zielserver zeigt. Remotes speichern die Server-URL und Anmeldeinformationen lokal in~/.twenty/config.json.
Ein Remote hinzufügen:
Bereitstellen
Bauen und laden Sie Ihre App in einem Schritt auf den Server hoch:Eine bereitgestellte App freigeben
Tarball-Apps werden nicht im öffentlichen Marktplatz gelistet, daher entdecken andere Arbeitsbereiche auf demselben Server sie nicht durch Stöbern. Sobald sich Ihr Arbeitsbereich im Enterprise-Plan befindet, können Sie eine bereitgestellte App wie folgt freigeben:- Gehen Sie zu Einstellungen > Anwendungen > Registrierungen und öffnen Sie Ihre App
- Klicken Sie im Tab Distribution auf Freigabelink kopieren
- Teilen Sie diesen Link mit Nutzern in anderen Arbeitsbereichen — er führt sie direkt zur Installationsseite der App
Versionsverwaltung
Beim Aktualisieren einer bereits bereitgestellten Tarball-App verlangt der Server, dass dieversion in package.json strikt höher (gemäß der semver-Reihenfolge) ist als die derzeit bereitgestellte Version. Das erneute Bereitstellen derselben Version oder das Pushen einer niedrigeren Version wird abgelehnt, bevor das Tarball gespeichert wird — in der CLI wird ein VERSION_ALREADY_EXISTS-Fehler angezeigt.
So veröffentlichen Sie ein Update:
- Erhöhen Sie das Feld
versionin Ihrerpackage.json(z. B.1.2.3→1.2.4,1.3.0oder2.0.0). - Führen Sie
yarn twenty deployaus (oderyarn twenty deploy --remote production) - Arbeitsbereiche, die die App installiert haben, sehen in ihren Einstellungen, dass ein Upgrade verfügbar ist.
Pre-Release-Tags funktionieren wie erwartet: Das Erhöhen von
1.0.0-rc.1 → 1.0.0-rc.2 ist zulässig, und eine finale Version wie 1.0.0 wird korrekt als höher als 1.0.0-rc.5 erkannt. Die Version in package.json muss selbst eine gültige semver-Zeichenfolge sein.Auf npm veröffentlichen
Die Veröffentlichung auf npm macht Ihre App im Twenty-Marktplatz auffindbar. Jeder Twenty-Arbeitsbereich kann Marktplatz-Apps direkt über die Benutzeroberfläche durchsuchen, installieren und aktualisieren.Anforderungen
- Ein npm-Konto
- Das Schlüsselwort
twenty-appin Ihrempackage.json-Arraykeywords(manuell hinzufügen — es ist in dercreate-twenty-app-Vorlage standardmäßig nicht enthalten)
Marktplatz-Metadaten
DiedefineApplication()-Konfiguration unterstützt optionale Felder, die steuern, wie Ihre App im Marktplatz erscheint. Verwenden Sie logoUrl und screenshots, um Bilder aus dem Ordner public/ zu referenzieren:
src/application-config.ts
author, category, aboutDescription, websiteUrl, termsUrl usw.).
Veröffentlichen
beta oder next):
So funktioniert die Marktplatz-Erkennung
Der Twenty-Server synchronisiert seinen Marktplatzkatalog stündlich aus der npm-Registry. Sie können die Synchronisierung sofort auslösen, anstatt zu warten:defineApplication()-Konfiguration — Felder wie displayName, description, author, category, logoUrl, screenshots, aboutDescription, websiteUrl und termsUrl.
Wenn deine App keine
aboutDescription in defineApplication() definiert, verwendet der Marktplatz automatisch die README.md deines Pakets von npm als Inhalt der Über-uns-Seite. Das bedeutet, dass du eine einzige README sowohl für npm als auch für den Twenty-Marktplatz pflegen kannst. Wenn du im Marktplatz eine andere Beschreibung möchtest, setze aboutDescription explizit.CI-Veröffentlichung
Verwenden Sie diesen GitHub-Actions-Workflow, um bei jedem Release automatisch zu veröffentlichen (verwendet OIDC):yarn install, yarn twenty build und anschließend npm publish aus .twenty/output.
npm-Provenance ist optional, wird jedoch empfohlen. Das Veröffentlichen mit
--provenance fügt Ihrem npm-Eintrag ein Vertrauensabzeichen hinzu, sodass Nutzer überprüfen können, dass das Paket aus einem bestimmten Commit in einer öffentlichen CI-Pipeline gebaut wurde. Siehe die npm-Provenance-Dokumentation für Einrichtungshinweise.Apps installieren
Sobald eine App veröffentlicht (npm) oder bereitgestellt (Tarball) wurde, können Arbeitsbereiche sie über die Benutzeroberfläche installieren. Gehen Sie zur Seite Einstellungen > Anwendungen in Twenty, auf der sowohl Marktplatz- als auch per Tarball bereitgestellte Apps durchsucht und installiert werden können. Sie können Apps auch über die Befehlszeile installieren:Der Server erzwingt bei der Installation semver-Versionierung und spiegelt damit die Regeln beim Bereitstellen wider:
- Die Installation derselben Version, die in Ihrem Arbeitsbereich bereits installiert ist, wird mit einem
APP_ALREADY_INSTALLED-Fehler abgelehnt. - Die Installation einer niedrigeren Version als die aktuell installierte wird mit einem
CANNOT_DOWNGRADE_APPLICATION-Fehler abgelehnt.
yarn twenty install erneut aus.