IDX-Arbeitsbereich anpassen

Mit Projekt IDX können Sie Ihren Arbeitsbereich an die individuellen Anforderungen Ihres Projekts anpassen. Dazu definieren Sie eine einzelne .idx/dev.nix-Konfigurationsdatei, die Folgendes beschreibt:

  • Die Systemtools, die Sie ausführen können müssen (z. B. vom Terminal), z. B. Compiler oder andere Binärdateien.
  • Die IDE-Erweiterungen, die Sie installiert haben müssen (z. B. Unterstützung für Programmiersprache).
  • Wie die App-Vorschauen dargestellt werden sollten, z. B. die Befehle zum Ausführen Ihres Webservers.
  • Globale Umgebungsvariablen, die für lokale Server verfügbar sind, die in Ihrem Arbeitsbereich ausgeführt werden.

Eine vollständige Beschreibung der verfügbaren Optionen finden Sie in der Referenz zu dev.nix.

Nix und IDX

IDX verwendet Nix, um die Umgebungskonfiguration für jeden Arbeitsbereich zu definieren. Im Einzelnen nutzt IDX Folgendes:

  • Die Programmiersprache Nix zur Beschreibung von Arbeitsbereichsumgebungen. Nix ist eine funktionale Programmiersprache. Die Attribute und Paketbibliotheken, die Sie in der Datei dev.nix definieren können, entsprechen der Syntax für Nix-Attributsätze.

  • Nix-Paketmanager zum Verwalten der für Ihren Arbeitsbereich verfügbaren Systemtools Dies ähnelt betriebssystemspezifischen Paketmanagern wie APT (apt und apt-get), Homebrew (brew) und dpkg.

Da Nix-Umgebungen reproduzierbar und deklarativ sind, bedeutet dies im Zusammenhang mit IDX, dass Sie Ihre Nix-Konfigurationsdatei als Teil Ihres Git-Repositorys freigeben können, damit alle, die an Ihrem Projekt arbeiten, dieselbe Umgebungskonfiguration haben.

Einfaches Beispiel

Das folgende Beispiel zeigt eine grundlegende Umgebungskonfiguration, mit der Vorschauen aktiviert werden:

{ 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";
      };
    };
  };
}

Systemtools hinzufügen

Wenn Sie Ihrem Arbeitsbereich Systemtools wie Compiler oder Befehlszeilenprogramme für Clouddienste hinzufügen möchten, suchen Sie die eindeutige Paket-ID in der Nix-Paket-Registry und fügen Sie sie dem Objekt packages Ihrer dev.nix-Datei mit dem Präfix „pkgs“ hinzu:

{ 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
  ];
  ...
}

Dies unterscheidet sich von der Vorgehensweise, mit der Sie Systempakete normalerweise mit betriebssystemspezifischen Paketmanagern wie APT (apt und apt-get), Homebrew (brew) und dpkg installieren. Wenn Sie genau beschreiben, welche Systempakete benötigt werden, lassen sich IDX-Arbeitsbereiche einfacher teilen und reproduzieren.

Lokale Binärdateien von Knoten verwenden

Genau wie auf Ihrem lokalen Computer können Binärdateien, die zu lokal installierten Knotenpaketen (d. h. in package.json definierten Paketen) gehören, in einem Terminal-Steuerfeld ausgeführt werden. Dazu rufen Sie sie mit dem Befehl npx auf.

Wenn Sie sich in einem Verzeichnis mit einem node_modules-Ordner befinden (z. B. dem Stammverzeichnis eines Webprojekts), können lokal installierte Binärdateien direkt und ohne das Präfix npx aufgerufen werden.

gcloud Komponenten hinzufügen

Eine Standardkonfiguration der gcloud-Befehlszeile für Google Cloud ist für alle IDX-Arbeitsbereiche verfügbar.

Wenn Sie zusätzliche Komponenten benötigen, können Sie sie der Datei dev.nix so hinzufügen:

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

IDE-Erweiterungen hinzufügen

Sie können Erweiterungen in IDX mit der OpenVSX-Erweiterungs-Registry auf zwei Arten installieren:

  • Über den Bereich Erweiterungen in IDX, um Erweiterungen zu erkennen und zu installieren. Dieser Ansatz eignet sich am besten für nutzerspezifische Erweiterungen, z. B.:

    • Benutzerdefinierte Farbdesigns
  • Durch Hinzufügen von Erweiterungen zu Ihrer dev.nix-Datei Diese Erweiterungen werden automatisch installiert, wenn Sie die Konfiguration Ihres Arbeitsbereichs freigeben. Dieser Ansatz eignet sich am besten für projektspezifische Erweiterungen wie die folgenden:

    • Programmiersprachen-Erweiterungen, einschließlich sprachspezifischer Debugger
    • Offizielle Erweiterungen für Cloud-Dienste, die in Ihrem Projekt verwendet werden
    • Codeformatierer

Für den zweiten Ansatz können Sie IDE-Erweiterungen in Ihre dev.nix-Datei einfügen. Suchen Sie dazu die vollständig qualifizierte Erweiterungs-ID im Format <publisher>.<id> und fügen Sie sie dem Objekt idx.extensions so hinzu:

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

Häufige Dienste hinzufügen

Außerdem vereinfacht IDX die Einrichtung und Konfiguration gängiger Dienste, die Sie während der Entwicklung benötigen, darunter:

  • Container
    • Docker (services.docker.*)
  • Mitteilungen
    • Pub/Sub-Emulator (services.pubsub.*)
  • Datenbanken
    • MySQL (services.mysql.*)
    • Postgres (services.postgres.*)
    • Redis (services.redis.*)
    • Spanner (services.spanner.*)

Weitere Informationen zum Aktivieren dieser Dienste in Ihrem Arbeitsbereich finden Sie in den services.*-Abschnitten der dev.nix-Referenz.

Vorschauen anpassen

Weitere Informationen zum Anpassen der App-Vorschauen finden Sie in der Dokumentation zu Vorschauen.

Alle Anpassungsoptionen ansehen

Eine ausführliche Beschreibung des Umgebungskonfigurationsschemas finden Sie in der Referenz zu dev.nix.