dev.nix-Referenz

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