Dostosowywanie obszaru roboczego IDX

Project IDX umożliwia dostosowanie obszaru roboczego do unikalnych potrzeb projektu definiując pojedynczy plik konfiguracji .idx/dev.nix, który opisuje:

  • Narzędzia systemowe, których musisz użyć (np. terminala), takich jak kompilatory lub inne pliki binarne.
  • rozszerzenia IDE, które musisz zainstalować (na przykład język programowania, ).
  • Jak powinny wyświetlać się podglądy aplikacji (na np. polecenia do uruchomienia serwera WWW).
  • Globalne zmienne środowiskowe dostępne dla serwerów lokalnych działających w obszar roboczy.

Pełne informacje znajdziesz w dokumentacji dev.nix. i opis dostępnych funkcji.

Nix i IDX

IDX używa Nix do określenia konfigurację środowiska dla każdego obszaru roboczego. W szczególności IDX wykorzystuje:

  • w języku programowania Nix, i opisywać środowiska obszaru roboczego. Nix to funkcjonalny język programowania. Atrybuty i biblioteki pakietów, które możesz zdefiniować w pliku dev.nix postępuj zgodnie z zestawem atrybutów Nix .

  • menedżerem pakietów Nix do zarządzania z narzędzi systemowych dostępnych w obszarze roboczym. Działa podobnie jak w przypadku konkretnego systemu operacyjnego. menedżerowie pakietów, takie jak APT (apt i apt-get), Homebrew (brew), dpkg

Ponieważ środowiska Nix są powtarzalne i deklaratywne w kontekście IDX. Oznacza to, że możesz udostępniać plik konfiguracji Nix w ramach repozytorium Git, dzięki któremu każdy, kto pracuje nad Twoim projektem, ma taki sam dostęp konfigurację środowiska.

Podstawowy przykład

Poniższy przykład pokazuje podstawową konfigurację środowiska, która włącza podglądy:

{ pkgs, ... }: {

  # Which nixpkgs channel to use.
  channel = "stable-23.11"; # or "unstable"

  # Use https://search.nixos.org/packages to find packages
  packages = [
    pkgs.nodejs_18
  ];

  # Sets environment variables in the workspace
  env = {
    SOME_ENV_VAR = "hello";
  };

  # Search for the extensions you want on https://open-vsx.org/ and use "publisher.id"
  idx.extensions = [
    "angular.ng-template"
  ];

  # Enable previews and customize configuration
  idx.previews = {
    enable = true;
    previews = {
      web = {
        command = [
          "npm"
          "run"
          "start"
          "--"
          "--port"
          "$PORT"
          "--host"
          "0.0.0.0"
          "--disable-host-check"
        ];
        manager = "web";
      };
    };
  };
}

Dodaj narzędzia systemowe

Aby dodać do obszaru roboczego narzędzia systemowe, takie jak kompilatory lub programy interfejsu wiersza poleceń usług w chmurze, znajdź unikalny identyfikator pakietu Nix rejestr i dodaj go do rejestru dev.nix Obiekt packages z prefiksem „pkgs.:

{ pkgs, ... }: {
  # Which nixpkgs channel to use.
  channel = "stable-23.11"; # or "unstable"

  # Use https://search.nixos.org/packages to find packages
  packages = [
    pkgs.nodejs_18
  ];
  ...
}

Różni się to od sposobu, w jaki zazwyczaj instalujesz pakiety systemowe za pomocą Menedżery pakietów w konkretnych systemach operacyjnych, takie jak APT (apt i apt-get), Homebrew (brew) i dpkg. Deklaratywne opisanie dokładnie, które pakiety systemowe są oznacza, że obszary robocze IDX można łatwiej udostępniać i odtwarzać.

Użyj plików binarnych węzłów lokalnych

Podobnie jak na komputerze lokalnym, pliki binarne powiązane z lokalnie zainstalowanym węzłem pakiety (tj. pakiety zdefiniowane w package.json) mogą być wykonywane w Panel terminala przez wywołanie go za pomocą funkcji npx .

Jako dodatkową wygodę, jeśli jesteś w katalogu z domeną node_modules (np. katalog główny projektu internetowego), pliki binarne zainstalowane lokalnie może zostać wywołana bezpośrednio, bez prefiksu npx.

Dodaj komponenty (gcloud)

Domyślna konfiguracja interfejsu wiersza poleceń gcloud dla Google Usługa Cloud jest dostępna dla wszystkich IDX obszarów roboczych.

Jeśli potrzebujesz dodatkowych komponentów, możesz je dodać do pliku dev.nix jako czyli:

{ pkgs }: {
  packages = [
    ...
    (pkgs.google-cloud-sdk.withExtraComponents [
      pkgs.google-cloud-sdk.components.cloud-datastore-emulator
    ])
    ...
  ];
}

Dodaj rozszerzenia IDE

Rozszerzenia możesz instalować w IDX za pomocą Rejestr rozszerzeń OpenVSX – na 2 sposoby:

  • za pomocą panelu Rozszerzenia w IDX do wykrywania i instalowania aplikacji. rozszerzeń. Ta metoda najlepiej sprawdza się w przypadku rozszerzeń związanych z konkretnymi użytkownikami, takich jak:

    • Niestandardowe motywy kolorystyczne
  • Przez dodanie rozszerzeń do pliku dev.nix. Te rozszerzenia zostaną automatycznie instalowane podczas udostępniania konfiguracji obszaru roboczego. Ten jest najlepsze w przypadku rozszerzeń związanych z projektem, takich jak:

    • rozszerzenia językowe programowania, w tym debugery dla różnych języków;
    • Oficjalne rozszerzenia usług w chmurze używanych w Twoim projekcie
    • Programy do formatowania kodu

Możesz też dodać rozszerzenia IDE do pliku dev.nix. znajdź pełny identyfikator rozszerzenia (formularz <publisher>.<id>) i dodaj go do idx.extensions taki obiekt:

{ pkgs, ... }: {
  ...
  # Search for the extensions you want on https://open-vsx.org/ and use the format
  # "<publisher>.<id>"
  idx.extensions = [
    "angular.ng-template"
  ];
  ...
}

Dodaj popularne usługi

IDX oferuje też uproszczoną konfigurację typowych usług które mogą być potrzebne podczas tworzenia aplikacji, w tym:

  • Kontenery
    • Docker (services.docker.*)
  • Wiadomości
    • Emulator Pub/Sub (services.pubsub.*)
  • Bazy danych
    • MySQL (services.mysql.*)
    • Postgres (services.postgres.*)
    • Redis (services.redis.*)
    • Spanner (services.spanner.*)

Szczegółowe informacje o włączaniu tych usług w obszarze roboczym znajdziesz tutaj: services.* w pliku referencyjnym dev.nix.

Dostosowywanie podglądu

Szczegółowe informacje na temat dostosowywania podglądów aplikacji znajdziesz w dokumentacji podglądy.

Ustawianie ikony obszaru roboczego

Możesz wybrać niestandardową ikonę dla obszaru roboczego, umieszczając plik PNG o nazwie icon.png obok pliku dev.nix, w katalogu .idx. IDX będzie używać tej ikony do reprezentowania obszaru roboczego w panelu.

Plik można sprawdzić w kontroli źródła (np. w Git), dlatego jest to To dobry sposób, by pokazać wszystkim osobom pracującym nad Twoim projektem tę samą ikonę podczas używania IDX. Plik może się różnić w zależności od gałęzi Git, możesz nawet wizualnie wyróżnić obszary robocze podczas pracy w wersji „beta” oraz „produkcja” wersji Twojej aplikacji.

Przekształcanie dostosowań w szablon

Przekształcanie konfiguracji środowiska w „środowisko startowe” dla każdego aby tworzyć nowe projekty, zapoznaj się z dokumentacją na temat tworzenia niestandardowych .

Zobacz wszystkie opcje dostosowywania

Aby dowiedzieć się więcej, zapoznaj się z dokumentacją dev.nix. opis schematu konfiguracji środowiska.