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
veapt-get
), Homebrew (brew
) vedpkg
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.*
)
- Docker (
- Mesajlaşma
- Pub/Sub Emülatörü (
services.pubsub.*
)
- Pub/Sub Emülatörü (
- Veritabanları
- MySQL (
services.mysql.*
) - Postgres (
services.postgres.*
) - Redis (
services.redis.*
) - Spanner (
services.spanner.*
)
- MySQL (
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.