IDX çalışma alanınızı özelleştirme

Proje IDX, aşağıdakileri açıklayan tek bir .idx/dev.nix yapılandırma dosyası tanımlayarak çalışma alanınızı projenizin benzersiz ihtiyaçlarına göre uyarlamanıza olanak tanır:

  • Derleyiciler veya diğer ikili dosyalar gibi çalıştırmanız gereken sistem araçları (ör. Terminal'den).
  • Yüklemeniz gereken IDE uzantıları (ör. programlama dili desteği).
  • Uygulama önizlemelerinizin nasıl görünmesi gerektiği (ör. web sunucunuzu çalıştırma komutları).
  • Çalışma alanınızda çalışan yerel sunucuların kullanabileceği genel ortam değişkenleri.

Sunulan özelliklerin tam açıklamasını dev.nix referansında bulabilirsiniz.

Nix ve IDX

IDX, her çalışma alanının ortam yapılandırmasını tanımlamak için Nix'i kullanır. IDX özellikle şunları kullanır:

  • Workspace ortamlarını tanımlamak için Nix programlama dili. Nix, işlevsel bir programlama dilidir. dev.nix dosyasında tanımlayabileceğiniz özellikler ve paket kitaplıkları, Nix özellik grubu söz dizimini izler.

  • Workspace'inizde kullanılabilen sistem araçlarını yönetmek için Nix paket yöneticisi. Bu, APT (apt ve apt-get), Homebrew (brew) ve dpkg gibi işletim sistemine özgü paket yöneticilerine benzer.

Nix ortamları yeniden üretilebilir ve açıklayıcı olduğundan, IDX bağlamında bu, projenizde çalışan herkesin aynı ortam yapılandırmasına sahip olmasını sağlamak için Nix yapılandırma dosyanızı Git deponuzun bir parçası olarak paylaşabileceğiniz anlamına gelir.

Temel bir örnek

Aşağıdaki örnekte, önizlemeleri etkinleştiren temel bir ortam yapılandırması gösterilmektedir:

{ 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";
        # Optionally, specify a directory that contains your web app
        # cwd = "app/client";
      };
    };
  };
}

Sistem araçları ekleme

Bulut hizmetleri için derleyiciler veya CLI programları gibi sistem araçlarını çalışma alanınıza eklemek istiyorsanız Nix paket kayıt otoritesinde benzersiz paket kimliğini bulun ve dev.nix dosyanızı packages nesnesine ekleyin. Öncesine "pkgs" ön ekini ekleyin:

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

Bu, APT (apt ve apt-get), Homebrew (brew) ve dpkg gibi işletim sistemine özel paket yöneticilerini kullanarak sistem paketlerini genellikle yükleme şeklinizden farklıdır. Tam olarak hangi sistem paketlerinin gerekli olduğunu açık bir şekilde tanımlamak, IDX çalışma alanlarının paylaşılmasını ve yeniden oluşturulmasını kolaylaştırır.

Yerel düğüm ikililerini kullanma

Yerel makinenizde olduğu gibi, yerel olarak yüklü node paketleriyle (yani package.json dosyanızda tanımlanan paketlerle) ilgili ikili dosyalar, npx komutuyla çağrılarak Terminal panelinde çalıştırılabilir.

Ek bir kolaylık olarak, node_modules klasörünün bulunduğu bir dizindeyseniz (ör. bir web projesinin kök dizini) yerel olarak yüklenen ikili dosyalar npx ön eki olmadan doğrudan çağrılabilir.

gcloud bileşeni ekleme

Tüm IDX çalışma alanlarında, Google Cloud için gcloud CLI'nin varsayılan yapılandırması kullanılabilir.

Ek bileşenlere ihtiyacınız varsa bunları dev.nix dosyanıza aşağıdaki gibi ekleyebilirsiniz:

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

IDE uzantıları ekleme

OpenVSX uzantı kayıt defterini kullanarak uzantıları IDX'ye iki şekilde yükleyebilirsiniz:

  • Uzantı bulmak ve yüklemek için IDX'deki Uzantılar panelini kullanarak. Bu yaklaşım, aşağıdakiler gibi kullanıcıya özel uzantılar için en iyisidir:

    • Özel renk temaları
  • dev.nix dosyanıza uzantı ekleyerek. Bu uzantılar, çalışma alanı yapılandırmanızı paylaştığınızda otomatik olarak yüklenir. Bu yaklaşım, aşağıdakiler gibi projeye özel uzantılar için en uygundur:

    • Dile özgü hata ayıklayıcılar da dahil olmak üzere programlama dili uzantıları
    • Projenizde kullanılan bulut hizmetleri için resmi uzantılar
    • Kod biçimlendiriciler

İkinci yaklaşımda, tam nitelikli uzantı kimliğini (<publisher>.<id> biçiminde) bulup idx.extensions nesnesine aşağıdaki gibi ekleyerek IDE uzantılarını dev.nix dosyanıza dahil edebilirsiniz:

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

Sık kullanılan hizmetleri ekleme

IDX, geliştirme sırasında ihtiyaç duyabileceğiniz yaygın hizmetler için basitleştirilmiş kurulum ve yapılandırma da sunar. Örneğin:

  • Kapsayıcılar
    • Docker (services.docker.*)
  • Mesajlaşma
    • Pub/Sub Emülatörü (services.pubsub.*)
  • Veritabanları
    • MySQL (services.mysql.*)
    • Postgres (services.postgres.*)
    • Redis (services.redis.*)
    • Spanner (services.spanner.*)

Bu hizmetleri çalışma alanınızda etkinleştirmeyle ilgili ayrıntılar için dev.nix referansının services.*bölümlerine bakın.

Önizlemeleri özelleştirme

Uygulama önizlemelerinizi özelleştirme hakkında ayrıntılı bilgi için önizlemelerle ilgili dokümanları inceleyin.

Çalışma alanı simgesini ayarlama

.idx dizininde dev.nix dosyasının yanına icon.png adlı bir PNG dosyası yerleştirerek çalışma alanınız için özel bir simge seçebilirsiniz. IDX, kontrol panelinizde çalışma alanınızı temsil etmek için bu simgeyi kullanır.

Bu dosya kaynak denetimine (ör. Git) kaydedilebildiğinden, projenizde çalışan herkesin IDX'yi kullanırken projeniz için aynı simgeyi görmesine yardımcı olmak için iyi bir yöntemdir. Dosya Git dalları arasında değişiklik gösterebileceğinden, örneğin uygulamanızın "beta" ve "üretim" sürümlerinde çalışırken çalışma alanlarını görsel olarak ayırt edebilirsiniz.

Özelleştirmelerinizi şablona dönüştürme

Ortam yapılandırmanızı, herkesin yeni projeler oluşturabileceği bir "başlangıç ortamına" dönüştürmek için özel şablon oluşturma ile ilgili belgelere bakın.

Tüm özelleştirme seçeneklerini görüntüleme

Ortam yapılandırma şemasının ayrıntılı açıklaması için dev.nix referansına bakın.