dev.nix-Referenz

Diese Seite enthält Details zum Schema für Ihre Arbeitsbereichsumgebung Konfigurationsdatei, die sich immer unter .idx/dev.nix befinden sollte.

Weitere Informationen zur Nix-Sprache finden Sie 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 vom ausgewählten channel Kanaloption.

Beispiel:

{pkgs, ...}: {
  channel = "stable-23.11";
  packages = [pkgs.vim];
}

Sie können hier nach verfügbaren Paketen suchen: stable-23.11 oder instabil ist.

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“, „stable-24.05“ oder „instable“

Standard: "stable-23.11"

env

Umgebungsvariablen, die in der Entwicklungsumgebung festgelegt werden.

Diese werden an alle Shells und den Vorschauserver weitergegeben. Umgebung Variablen können besonders nützlich sein, wenn Ihre Anwendung einen bestimmten Satz von von Variablen.

Der Wert jeder Variablen kann entweder ein String oder eine Liste von Strings sein. Die zwischen Doppelpunkten, verkettet und durchgestrichen.

PATH muss eine Liste sein, da sie immer erweitert und nicht vollständig ersetzt wird.

Beispiel:

{pkgs, ...}: {
  env = {
    HELLO = "world";
    # append an entry to PATH
    PATH = ["/some/path/bin"];
  };
}

Typ:Attributsatz von ((Liste mit String) oder irgendetwas)

Standard: { }

idx.extensions

Codeerweiterungen, die Sie in Ihrem IDX-Arbeitsbereich installieren möchten.

Dies ist eine Liste vollständig qualifizierter Erweiterungs-IDs. Beispiel: ${publisherId}.${extensionId}

Eine Liste der verfügbaren Erweiterungen finden Sie auf der Öffnen Sie VSX Registry und geben Sie sie in die Datei dev.nix ein. von ${publisherId}.${extensionId}.

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 kannst du deine Apps automatisch ausführen und aktualisieren sie zu entwickeln.

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>.activity

Android-Einführungsaktivität

Typ: String

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

Manager

Typ:entweder „web“, „flutter“, „android“ oder „gradle“

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 haben wir zum Beispiel geben npm install zum Ausführen an:

{pkgs, ...}: {
  idx.workspace.onCreate = {
    npm-install = "npm install";
    # files to open when the workspace is first opened.
    default.openFiles = [ "src/index.ts" ];
  };
}

Typ:Attributsatz von (Pfad oder String oder ({ openFiles = [ 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 z. B. an, Zwei auszuführende Befehle:

{pkgs, ...}: {
  idx.workspace.onStart = {
    npm-watch-fe = "npm run watch:frontend";
    npm-watch-be = "npm run watch:backend";
    # files to open when the workspace is (re)opened.
    default.openFiles = [ "src/index.ts" ];
  };
}

Typ:Attributsatz von (Pfad oder String oder ({ openFiles = [ string ];}))

Standard: { }

services.docker.enable

Gibt an, ob Rootless Docker aktiviert wird.

Typ: Boolesch

Standard: false

Beispiel: true

services.mongodb.enable

Gibt an, ob der MongoDB-Server aktiviert wird.

Typ: Boolesch

Standard: false

Beispiel: true

services.mongodb.package

MongoDB-Paket.

Typ:Paket

Standard: <derivation mongodb-6.0.11>

services.mongodb.port

Konfiguriert den Port, den Mongod überwacht.

TCP ist standardmäßig deaktiviert und Mongod hört nur auf /tmp/mongodb/mongodb.sock zu. Verwenden Sie den Verbindungsstring, um eine Verbindung herzustellen „mongodb://%2Ftmp%2Fmongodb%2Fmongodb.sock“

Typ:16-Bit-Ganzzahl ohne Vorzeichen zwischen 0 und 65.535 (beide einschließlich)

Standard: 0

services.mysql.enable

Gibt an, ob MySQL-Server aktiviert werden soll.

Der Server wird mit einem Nutzerstamm ohne Passwort initialisiert. Um zusätzliche Nutzer und zum Erstellen von Datenbanken verwenden mysql -u root. .

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.enableTcp

Gibt an, ob Postgres auf TCP überwacht werden soll.

Typ: Boolesch

Standard: true

Beispiel: true

services.postgres.package

PostgreSQL-Paket.

Typ:Paket

Standard: pkgs.postgresql

Beispiel: pkgs.postgresql_15

services.postgres.extensions

Zu installierende Postgres-Erweiterungen.

Typ: Liste mit (einer von "age", "apache_datasketches", "cstore_fdw", "hypopg", "jsonb_deep_sum", "periods", "pg_auto_failover", "pg_bigm", "pg_cron", "pg_ed25519", "pg_embedding", "pg_hint_plan", "pg_hll", "pg_ivm", "pg_net", "pg_partman", "pg_rational", "pg_relusage", "pg_repack", "pg_safeupdate", "pg_Similarity", "pg_topn", "pg_uuidv7", "pgaudit", "pgjwt", "pgroonga", "pgrouting", "pgsql-http", "pgtap", "pgvector", "plpgsql_check", "plr", "plv8", "postgis", "promscale_extension", "repmgr", "rum", "smlar", "tds_fdw", "temporal_tables", "timescaledb", "timescaledb-apache", "timescaledb_tooltip", "tsearch_extras", "tsja", "wal2json")

Standard: [ ]

Beispiel: [ "pgvector" "postgis" ];

services.pubsub.enable

Gibt an, ob der Google Pub/Sub-Emulator aktiviert wird.

Weitere Informationen 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 (beide einschließlich)

Standard: 8085

services.pubsub.project-id

Projekt-ID zum Ausführen des Pub/Sub-Emulators. Dieses Projekt dient nur zu Testzwecken. muss er nicht existieren 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 (beide 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 Fehlereinschleusung 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 (beide 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 (beide einschließlich)

Standard: 9020