Dokumentacja dev.nix

Ta strona zawiera szczegółowe informacje o schemacie środowiska roboczego . Ten plik zawsze powinien znajdować się w lokalizacji .idx/dev.nix.

Aby dowiedzieć się więcej o języku Nix, zapoznaj się z oficjalnym językiem Nix .

przesyłki

Pakiety do zainstalowania w środowisku.

Aby wybrać pakiety do zainstalowania, możesz użyć argumentu pkgs. Na przykład: pkgs.python3 Pamiętaj, że zawartość pola pkgs zależy od wybranego Opcja kanału channel.

Przykład:

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

Dostępne pakiety możesz wyszukać tutaj: stable-23.11 lub niestabilny.

Typ: lista pakietów

Wartość domyślna: [ ]

kanał

nixpkgs.

Ten kanał definiuje zawartość argumentu pkgs.

Typ: wartość „stable-23.05”, „stable-23.11”, „unstable”

Wartość domyślna: "stable-23.11"

env

Zmienne środowiskowe ustawiane w środowisku programistycznym.

Są one przekazywane do wszystkich powłok i serwera podglądu. Środowisko może być szczególnie przydatny, jeśli aplikacja wymaga określonego zestawu zmiennych.

Przykład:

{pkgs, ...}: {
  env = {
    HELLO = "world";
    PATH = ["/home/user/somepath"]; # use this to update the PATH env var
  };
}

Typ:zbiór atrybutów zawierający dowolne wartości.

Wartość domyślna: { }

idx.extensions

Rozszerzenia kodu, które chcesz zainstalować w obszarze roboczym IDX.

To jest lista w pełni kwalifikowanych identyfikatorów rozszerzeń, np. ${publisherId}.${extensionId}

Listę dostępnych rozszerzeń znajdziesz na Otwórz rejestr VSX i wpisz go w pliku dev.nix. autor: ${publisherId}.${extensionId}.

Typ: lista (niepusty ciąg lub ścieżka)

Wartość domyślna: [ ]

idx.previews.enable

Ustaw wartość true, aby włączyć podglądy IDX.

Ta funkcja umożliwia automatyczne uruchamianie i odświeżanie aplikacji podczas ich opracowywania.

Typ: wartość logiczna

Wartość domyślna: true

Przykład: true.

idx.previews.previews

Wyświetl podgląd konfiguracji.

Zdefiniuj polecenia wykonywane przez IDX w środowisku programistycznym.

Przykład:

{pkgs, ...}: {
  idx.previews = {
    enable = true;
    previews = {
      web = {
        command = ["yes"];
        cwd = "subfolder";
        manager = "web";
        env = {
          HELLO = "world";
        };
      };
    };
  };
}

Typ: zbiór atrybutów (moduł podrzędny)

Wartość domyślna: { }

idx.previews.previews.<name>.command

Polecenie do wykonania

Typ: lista ciągów znaków.

Wartość domyślna: [ ]

idx.previews.previews.<name>.cwd

Katalog roboczy

Typ: ciąg znaków

Wartość domyślna: ""

idx.previews.previews.<name>.env

Zmienne środowiskowe do ustawienia.

Typ: zbiór atrybutów w postaci ciągu znaków

Wartość domyślna: { }

idx.previews.previews.<name>.manager

Menedżer

Typ: wartość „web”, „flutter”

idx.workspace.onCreate

Polecenia do wykonania podczas tworzenia i otwierania obszaru roboczego po raz pierwszy.

Jest to przydatne podczas konfigurowania środowiska programistycznego. Na przykład określają npm install do uruchomienia:

{pkgs, ...}: {
  idx.workspace.onCreate = {
    npm-install = "npm install";
  };
}

Typ: zestaw atrybutów (ścieżka lub ciąg znaków)

Wartość domyślna: { }

idx.workspace.onStart

Polecenia do wykonywania po otwarciu obszaru roboczego.

Jest to przydatne, gdy zaczynasz zwiększać liczbę obserwatorów. Na przykład określamy tutaj Dwa polecenia do uruchomienia:

{pkgs, ...}: {
  idx.workspace.onStart = {
    npm-watch-fe = "npm run watch:frontend";
    npm-watch-be = "npm run watch:backend";
  };
}

Typ: zestaw atrybutów (ścieżka lub ciąg znaków)

Wartość domyślna: { }

services.docker.enable

Określa, czy włączyć dockera bez uprawnień do obsługi roota.

Typ: wartość logiczna

Wartość domyślna: false

Przykład: true.

services.mysql.enable

Określa, czy włączyć serwer MySQL.

Serwer zostaje zainicjowany z poziomem głównym użytkownika bez hasła. Aby utworzyć dodatkowe użytkowników i tworzenie baz danych używają interfejsu mysql -u root. .

Typ: wartość logiczna

Wartość domyślna: false

Przykład: true.

services.mysql.package

Pakiet MySQL do użycia.

Typ: pakiet

Wartość domyślna: pkgs.mysql

Przykład: pkgs.mysql80.

services.postgres.enable

Określa, czy włączyć serwer PostgreSQL.

Typ: wartość logiczna

Wartość domyślna: false

Przykład: true.

services.postgres.package

Pakiet PostgreSQL do użycia.

Typ: pakiet

Wartość domyślna: pkgs.postgresql

Przykład: pkgs.postgresql_15.

services.postgres.extensions

Rozszerzenia Postgres do zainstalowania.

Typ: lista (jeden z wartości „wiek”, „apache_datasketches", "cstore_fdw", "hypopg", "jsonb_deep_sum", "kropki", "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_podobieństwo", "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_ Toolkit", "tsearch_extras", "tsja", "wal2json")

Wartość domyślna: [ ]

Przykład: [ "pgvector" "postgis" ];.

services.pubsub.enable

Określa, czy włączyć emulator Google Pub/Sub.

Więcej dokumentacji na temat korzystania z emulatora znajdziesz tutaj: https://cloud.google.com/pubsub/docs/emulator#using_the_emulator

Typ: wartość logiczna

Wartość domyślna: false

Przykład: true.

services.pubsub.port

Konfiguruje port, na którym będzie nasłuchiwać Pub/Sub.

Typ: 16-bitowa nieoznaczona liczba całkowita; od 0 do 65 535 (oba włącznie)

Wartość domyślna: 8085

services.pubsub.project-id

Identyfikator projektu, który ma zostać użyty do uruchomienia emulatora Pub/Sub. Ten projekt jest przeznaczony tylko do testów. nie musi istnieć i jest używany wyłącznie lokalnie.

Typ: ciąg znaków pasujący do wzorca [a-z][a-z0-9-]{5,29}

Wartość domyślna: "idx-pubsub-emulator"

services.redis.enable

Określa, czy włączyć serwer Redis.

Typ: wartość logiczna

Wartość domyślna: false

Przykład: true.

services.redis.port

Konfiguruje port, na którym będzie nasłuchiwać Redis.

Domyślnie protokół tcp jest wyłączony, a redis nasłuchuje tylko na stronie /tmp/redis/redis.sock.

Typ: 16-bitowa nieoznaczona liczba całkowita; od 0 do 65 535 (oba włącznie)

Wartość domyślna: 0

services.spanner.enable

Określa, czy włączyć emulator Google Cloud Spanner.

Typ: wartość logiczna

Wartość domyślna: false

Przykład: true.

services.spanner.fault-injection

Określa, czy włączyć w transakcjach wstrzykiwanie błędów losowych.

Typ: wartość logiczna

Wartość domyślna: false

Przykład: true.

services.spanner.grpc-port

Port TCP, z którym ma być powiązany emulator.

Typ: 16-bitowa nieoznaczona liczba całkowita; od 0 do 65 535 (oba włącznie)

Wartość domyślna: 9010

services.spanner.rest-port

Port, na którym obsługiwane są żądania REST

Typ: 16-bitowa nieoznaczona liczba całkowita; od 0 do 65 535 (oba włącznie)

Wartość domyślna: 9020