Dokumentacja dev.nix

Ta strona zawiera szczegółowe informacje o schemacie pliku konfiguracji środowiska obszaru roboczego, który zawsze powinien znajdować się w lokalizacji .idx/dev.nix.

Aby dowiedzieć się więcej o języku Nix, zobacz samouczek oficjalnego języka Nix.

przesyłki

Pakiety do zainstalowania w środowisku.

Możesz użyć argumentu pkgs, aby wybrać pakiety do zainstalowania, np. pkgs.python3. Pamiętaj, że zawartość pola pkgs zależy od wybranej opcji kanału channel.

Przykład:

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

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

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. Zmienne środowiskowe mogą być szczególnie przydatne, jeśli aplikacja wymaga określonego zestawu zmiennych.

Przykład:

{pkgs, ...}: {
  env = {
    HELLO = "world";
  };
}

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 w Open VSX Registry (Otwórz rejestr VSX) i wpisz je w pliku dev.nix do ${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 aplikacji i ich ponowne wczytywanie w trakcie ich tworzenia.

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. Określamy na przykład 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. Określamy na przykład 2 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 zostanie zainicjowany z poziomem głównym użytkownika bez hasła. Aby utworzyć dodatkowych użytkowników i bazy danych, użyj narzędzia 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.

Type: list of (one of "age", "apache_datasketches", "apache_datasketches", "apache_datasketches", "cstore_fdw", "hypopg", "jsonb_deep_sum", "pg_bigm", "pg_safe_cron", "pg_ed25g519", "pg_bigpscale","

Wartość domyślna: [ ]

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

services.pubsub.enable

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

Dodatkową dokumentację dotyczącą korzystania z tego narzędzia 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 (włącznie)

Wartość domyślna: 8085

identyfikator-projektu usług.pubsub.projektu

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

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 (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 (włącznie)

Wartość domyślna: 9010

port-usług.spanner.rest

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

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

Wartość domyślna: 9020