Zum Inhalt springen

Pkl-Konfiguration rendern

JSON, YAML und PCF aus Pkl-Konfigurationsdateien für Anwendungen, Deployment-Tools und CI erzeugen.

Offline lesenelide help --lang de pkl-configuration

Auf dieser Seite

Werten Sie eine .pkl- oder .pcf-Datei direkt aus und geben Sie das gerenderte Ergebnis auf stdout aus. So erzeugen Sie Anwendungskonfiguration, versorgen Deployment-Tools oder prüfen eine Konfiguration vor dem Commit. Ein Elide-Projekt ist nicht erforderlich.

JSON oder YAML erzeugen

Beginnen Sie mit config.pkl:

pkl
service = "api"
port = 8080
utf-8 · pkl · Zeilen: 2

Wählen Sie das Format, das Ihre Anwendung liest, und leiten Sie das Ergebnis in eine Datei um:

Terminal
shell
elide --format=json config.pkl > config.json
elide --format=yaml config.pkl > config.yaml

Die JSON-Ausgabe enthält service und port mit denselben Werten und Typen. Der explizite Befehl run funktioniert ebenfalls:

Terminal
shell
elide run --format json config.pkl

.pkl- und .pcf-Eingaben akzeptieren dieselben Optionen. Wandeln Sie zum Beispiel eine bestehende PCF-Konfiguration in JSON um:

Terminal
shell
elide --format=json config.pcf > config.json

Ein Ausgabeformat wählen

OptionAusgabeTypische Verwendung
--format=jsonJSONAnwendungseinstellungen und Tools, die JSON lesen
--format=yamlYAMLDeployment-Konfiguration
--format=pcfPkl Configuration FormatAusgewertete Konfiguration in Pkl-Notation prüfen
Ohne --formatDie konfigurierte Ausgabe des Moduls; standardmäßig PCFDie eigene Ausgabedefinition eines Moduls beachten

TOML-Ausgabe wird nicht unterstützt. Ein nicht unterstütztes Format schlägt mit Exit-Code 2 fehl.

Konfiguration über Dateien hinweg teilen

Relative Importe werden von der Eingabedatei aus aufgelöst, sodass eine Konfiguration benachbarte Standardwerte auch dann wiederverwenden kann, wenn sie aus einem anderen Verzeichnis aufgerufen wird. Legen Sie zum Beispiel defaults.pkl und config.pkl gemeinsam unter config/ ab:

pkl
// defaults.pkl
port = 8080
utf-8 · pkl · Zeilen: 2
pkl
// config.pkl
import "defaults.pkl"

service = "api"
port = defaults.port
utf-8 · pkl · Zeilen: 5

Rendern Sie die Konfiguration aus der Wurzel des Repositorys mit:

Terminal
shell
elide --format=json config/config.pkl

Die Ausgabe in Skripten und CI verwenden

Stdout enthält nur das gerenderte Dokument; Diagnosen und Auswertungsfehler gehen nach stderr. Für Umleitungen oder Pipelines ist kein --quiet nötig. Prüfen Sie zum Beispiel mit installiertem jq eine Eigenschaft:

Terminal
shell
elide --format=json config.pkl | jq '.port'

Das Projektmanifest wird genauso gerendert und zeigt so seine vollständig ausgewertete Konfiguration samt Standardwerten:

Terminal
shell
elide --format=json elide.pkl | jq '.dependencies'

Ein Auswertungsfehler endet mit Exit-Code 1 und schreibt keinen gerenderten Inhalt nach stdout. Um eine Datei atomar zu aktualisieren, verwenden Sie --out statt einer Shell-Umleitung:

Terminal
shell
elide --format=json --out config.json config.pkl

--out config.json schreibt eine temporäre Datei in das Zielverzeichnis und ersetzt config.json erst atomar, wenn Auswertung und Schreiben erfolgreich waren. Bei Fehlern bleibt die bestehende Datei unverändert, und der Exit-Code ist ungleich null. Das Zielverzeichnis muss existieren und atomares Ersetzen unterstützen. Relative Pfade werden vom Arbeitsverzeichnis aus aufgelöst.

Mit --out - wählen Sie ausdrücklich stdout:

Terminal
shell
elide --format=json --out - config.pkl

Die Dokumentdarstellung lehnt --sandbox und --limit ab; diese Ausführungssteuerungen gelten für diesen Befehl nicht. Alle Befehlsoptionen finden Sie in der CLI-Referenz. Wie Sie eine README oder ein Runbook im selben Terminal lesen, steht unter Markdown im Terminal.

War diese Seite hilfreich?