Diese Seite enthält Details zum Schema für die Konfigurationsdatei der Arbeitsbereichsumgebung, die sich immer unter .idx/dev.nix
befinden sollte.
Weitere Informationen zur Nix-Sprache finden Sie im Tutorial in der offiziellen Nix-Sprache.
Pakete
Pakete, die in der Umgebung installiert werden sollen.
Sie können das Argument pkgs
verwenden, um zu installierende Pakete auszuwählen, z. B. pkgs.python3
. Der Inhalt von pkgs
hängt von der ausgewählten channel
-Kanaloption ab.
Beispiel:
{pkgs, ...}: {
channel = "stable-23.11";
packages = [pkgs.vim];
}
Sie können hier nach verfügbaren Paketen suchen: stable-23.11 oder instable.
Typ:Liste des Pakets
Standard: [ ]
Kanal
nixpkgs-Kanal, der verwendet werden soll.
Dieser Kanal definiert den Inhalt des Arguments pkgs
.
Typ:entweder „stable-23.05“, „stable-23.11“ oder „instable“
Standard: "stable-23.11"
env
Umgebungsvariablen, die in der Entwicklungsumgebung festgelegt werden.
Diese werden an alle Shells und den Vorschauserver weitergegeben. Umgebungsvariablen können besonders nützlich sein, wenn Ihre Anwendung einen bestimmten Satz von Variablen benötigt.
Beispiel:
{pkgs, ...}: {
env = {
HELLO = "world";
};
}
Typ: Attributsatz mit beliebigem Wert
Standard: { }
idx.extensions
Codeerweiterungen, die Sie in Ihrem IDX-Arbeitsbereich installieren möchten.
Dies ist eine Liste vollständig qualifizierter Erweiterungs-IDs, z. B. ${publisherId}.${extensionId}
.
Eine Liste der verfügbaren Erweiterungen findest du in Open VSX Registry. Gib die Erweiterungen dann bis zum ${publisherId}.${extensionId}
in die Datei dev.nix
ein.
Typ:Liste von (nicht leerer String oder Pfad)
Standard: [ ]
idx.previews.enable
Setzen Sie diesen Wert auf true
, um IDX Previews zu aktivieren.
Mit dieser Funktion können Sie Ihre Anwendungen während der Entwicklung automatisch ausführen und aktualisieren.
Typ: Boolesch
Standard: true
Beispiel: true
idx.previews.previews
Konfigurationen als Vorschau ansehen.
Definieren Sie die Befehle, die IDX in Ihrer Entwicklungsumgebung ausführt.
Beispiel:
{pkgs, ...}: {
idx.previews = {
enable = true;
previews = {
web = {
command = ["yes"];
cwd = "subfolder";
manager = "web";
env = {
HELLO = "world";
};
};
};
};
}
Typ:Attributsatz von (untermodul)
Standard: { }
idx.previews.previews.<name>.command
Auszuführender Befehl
Typ:Stringliste
Standard: [ ]
idx.previews.previews.<name>.cwd
Arbeitsverzeichnis
Typ: String
Standard: ""
idx.previews.previews.<name>.env
Umgebungsvariablen festzulegen.
Typ: Attributsatz des Strings
Standard: { }
idx.previews.previews.<name>.manager
Abteilungsleitung
Typ:entweder „web“ oder „flutter“
idx.workspace.onCreate
Befehle, die ausgeführt werden, wenn der Arbeitsbereich zum ersten Mal erstellt und geöffnet wird.
Dies kann bei der Einrichtung der Entwicklungsumgebung hilfreich sein. Hier geben wir beispielsweise npm install
zum Ausführen an:
{pkgs, ...}: {
idx.workspace.onCreate = {
npm-install = "npm install";
};
}
Typ:Attributsatz von (Pfad oder String)
Standard: { }
idx.workspace.onStart
Befehle, die beim Öffnen des Arbeitsbereichs ausgeführt werden sollen.
Dies kann hilfreich sein, um Build-Watcher zu starten. Hier geben wir beispielsweise zwei auszuführende Befehle an:
{pkgs, ...}: {
idx.workspace.onStart = {
npm-watch-fe = "npm run watch:frontend";
npm-watch-be = "npm run watch:backend";
};
}
Typ:Attributsatz von (Pfad oder String)
Standard: { }
services.docker.enable
Gibt an, ob Rootless Docker aktiviert wird.
Typ: Boolesch
Standard: false
Beispiel: true
services.mysql.enable
Gibt an, ob MySQL-Server aktiviert werden soll.
Der Server wird mit einem Nutzerstamm ohne Passwort initialisiert. Verwenden Sie also mysql -u root
, um zusätzliche Nutzer und Datenbanken zu erstellen. .
Typ: Boolesch
Standard: false
Beispiel: true
services.mysql.package
MySQL-Paket, das verwendet werden soll.
Typ:Paket
Standard: pkgs.mysql
Beispiel: pkgs.mysql80
services.postgres.enable
Gibt an, ob der PostgreSQL-Server aktiviert werden soll.
Typ: Boolesch
Standard: false
Beispiel: true
services.postgres.package
PostgreSQL-Paket.
Typ:Paket
Standard: pkgs.postgresql
Beispiel: pkgs.postgresql_15
services.postgres.extensions
Zu installierende Postgres-Erweiterungen.
Type: "age", "apache_datasketches", "cstore_fdw", "hypopg", "jsonb_deep_sum", "periods", "pg_auto_failover", "pg_bigm", "pg_crong", "pg_ed25519", "pg_embedding"
Standard: [ ]
Beispiel: [ "pgvector" "postgis" ];
services.pubsub.enable
Gibt an, ob der Google Pub/Sub-Emulator aktiviert wird.
Weitere Dokumentation zur Verwendung des Emulators finden Sie hier: https://cloud.google.com/pubsub/docs/emulator#using_the_emulator .
Typ: Boolesch
Standard: false
Beispiel: true
services.pubsub.port
Konfiguriert den Port, der von Pub/Sub überwacht wird.
Typ:16-Bit-Ganzzahl ohne Vorzeichen, zwischen 0 und 65.535 (jeweils einschließlich)
Standard: 8085
Dienste.pubsub.project-id
Projekt-ID zum Ausführen des Pub/Sub-Emulators. Dieses Projekt dient nur zu Testzwecken. Es muss nicht vorhanden sein und wird nur lokal verwendet.
Typ:String, der mit dem Muster [a-z][a-z0-9-]{5,29} übereinstimmt
Standard: "idx-pubsub-emulator"
services.redis.enable
Gibt an, ob der Redis-Server aktiviert werden soll.
Typ: Boolesch
Standard: false
Beispiel: true
services.redis.port
Konfiguriert den Port, der von Redis überwacht wird.
TCP ist standardmäßig deaktiviert und Redis hört nur auf /tmp/redis/redis.sock zu.
Typ:16-Bit-Ganzzahl ohne Vorzeichen, zwischen 0 und 65.535 (jeweils einschließlich)
Standard: 0
services.spanner.enable
Gibt an, ob der Google Cloud Spanner-Emulator aktiviert werden soll.
Typ: Boolesch
Standard: false
Beispiel: true
services.spanner.fault-injection
Gibt an, ob die zufällige Fehlerinjektion in Transaktionen aktiviert werden soll.
Typ: Boolesch
Standard: false
Beispiel: true
services.spanner.grpc-port
Der TCP-Port, an den der Emulator gebunden werden soll.
Typ:16-Bit-Ganzzahl ohne Vorzeichen, zwischen 0 und 65.535 (jeweils einschließlich)
Standard: 9010
Services.spanner.rest-port
Der Port, an dem REST-Anfragen verarbeitet werden
Typ:16-Bit-Ganzzahl ohne Vorzeichen, zwischen 0 und 65.535 (jeweils einschließlich)
Standard: 9020