Bu sayfada, her zaman .idx/dev.nix
adresinde bulunan çalışma alanı ortamı yapılandırma dosyanızın şemasıyla ilgili ayrıntılar yer alır.
Nix dili hakkında bilgi edinmek için resmi Nix dili eğitim kılavuzuna göz atın.
packages
Ortama yüklenecek paketler.
Yüklenecek paketleri seçmek için pkgs
bağımsız değişkenini kullanabilirsiniz (ör. pkgs.python3
). pkgs
içeriğinin, seçilen channel
kanal seçeneğine bağlı olduğunu unutmayın.
Örnek:
{pkgs, ...}: {
channel = "stable-23.11";
packages = [pkgs.vim];
}
Kullanılabilir paketleri şuradan arayabilirsiniz: stable-23.11 veya unstable.
Tür: Paket listesi
Varsayılan: [ ]
kanal
Kullanılacak nixpkgs kanalı.
Bu kanal, pkgs
bağımsız değişkeninin içeriğini tanımlar.
Tür: "stable-23.05", "stable-23.11", "stable-24.05", "stable-24.11", "unstable" seçeneklerinden biri
Varsayılan: "stable-23.11"
env
Geliştirici ortamında ayarlanan ortam değişkenleri.
Bu bilgiler tüm kabuklarınıza ve önizleme sunucusuna dağıtılır. Ortam değişkenleri, özellikle uygulamanız belirli bir değişken grubu gerektiriyorsa yararlı olabilir.
Her değişkenin değeri bir dize veya dize listesi olabilir. İkincisi, iki nokta üst üste karakterleriyle birlikte birleştirilir.
PATH
her zaman genişletildiği ve hiçbir zaman tamamen değiştirilmediği için bir liste olmalıdır.
Örnek:
{pkgs, ...}: {
env = {
HELLO = "world";
# append an entry to PATH
PATH = ["/some/path/bin"];
};
}
Tür: ((dize listesi) veya herhangi bir şey) öznitelik grubu
Varsayılan: { }
idx.extensions
IDX çalışma alanınıza yüklemek istediğiniz kod uzantıları.
Bu, tam nitelikli uzantı kimliklerinin listesidir (ör. ${publisherId}.${extensionId}
).
Mevcut uzantıların listesini Open VSX Registry'de bulabilir ve ${publisherId}.${extensionId}
ile dev.nix
dosyanıza ekleyebilirsiniz.
Tür: liste (boş olmayan dize veya yol)
Varsayılan: [ ]
idx.previews.enable
IDX önizlemelerini etkinleştirmek için bu ayarı true
olarak ayarlayın.
Bu özellik, uygulamalarınızı geliştirirken otomatik olarak çalıştırmanızı ve yeniden yüklemenizi sağlar.
Tür: boole
Varsayılan: true
Örnek: true
idx.previews.previews
Yapılandırmaları önizleyin.
IDX'nin geliştirici ortamınızda yürüteceği komutları tanımlayın.
Örnek:
{pkgs, ...}: {
idx.previews = {
enable = true;
previews = {
web = {
command = ["yes"];
cwd = "subfolder";
manager = "web";
env = {
HELLO = "world";
};
};
};
};
}
Tür: (alt modül) özellik grubu
Varsayılan: { }
idx.previews.previews.<name>.activity
Android Başlatma Etkinliği
Tür: dize
Varsayılan: ""
idx.previews.previews.<name>.command
Yürütülecek komut
Tür: dize listesi
Varsayılan: [ ]
idx.previews.previews.<name>.cwd
Çalışma dizini
Tür: dize
Varsayılan: ""
idx.previews.previews.<name>.env
Ayarlanacak ortam değişkenleri.
Tür: dize özelliği grubu
Varsayılan: { }
idx.previews.previews.<name>.manager
Yönetici
Tür: "web", "flutter", "android", "gradle" seçeneklerinden biri
idx.workspace.onCreate
Workspace oluşturulup ilk kez açıldığında çalıştırılacak komutlar.
Bu, geliştirme ortamını ayarlamak için yararlı olabilir. Örneğin, burada çalıştırılacak npm install
değerini belirtiyoruz:
{pkgs, ...}: {
idx.workspace.onCreate = {
npm-install = "npm install";
# files to open when the workspace is first opened.
default.openFiles = [ "src/index.ts" ];
};
}
Tür: (yol veya dize veya ({ openFiles = [ string ];})) özellik grubu
Varsayılan: { }
idx.workspace.onStart
Çalışma alanı her açıldığında yürütülecek komutlar.
Bu, derleme izleyicileri başlatmak için yararlı olabilir. Örneğin, burada çalıştırılacak 2 komutu belirtiyoruz:
{pkgs, ...}: {
idx.workspace.onStart = {
npm-watch-fe = "npm run watch:frontend";
npm-watch-be = "npm run watch:backend";
# files to open when the workspace is (re)opened.
default.openFiles = [ "src/index.ts" ];
};
}
Tür: (yol veya dize veya ({ openFiles = [ string ];})) özellik grubu
Varsayılan: { }
ithalat
dev.nix dosyanızı içe aktarılan bir dosyayla genişletebilirsiniz.
# dev.nix
{ pkgs, ... }: {
imports = [
./some-file.nix
];
# ...
}
# some-file.nix
{ pkgs, ... }: {
packages = [
pkgs.python3
];
# ...
}
dev.nix
'a özel bir .nix
dosyası içe aktarmak isteyebileceğiniz birden fazla neden vardır:
dev.nix
dosyanız büyük ve bakım kolaylığını artırmak için dosyayı modüler hale getirmek istiyorsunuz.{ pkgs, ... }: { channel = "stable-24.11"; # ... imports = [ ./env-cfg.nix ./preview-config.nix ]; }
Yerel ortamınıza özgü seçenekleri yapılandırmak ve dosyayı
.gitignore
listenize eklemek istiyorsunuz.# dev.nix { pkgs, lib, ... }: { # ... imports = lib.optionals (builtins.pathExists ./dev.local.nix ) [ ./dev.local.nix ]; }
#.gitignore .idx/dev.local.nix
Tür: yol listesi
Varsayılan: [ ]
services
Workspace açıldığında etkinleştirilecek yaygın hizmetler.
Örneğin, Postgres'i etkinleştirmek ve pgvector
uzantısını kullanmak için dev.nix
dosyasına aşağıdakileri ekleyin:
services.postgres = {
extensions = ["pgvector"];
enable = true;
};
Aşağıdaki bölümlerde, desteklenen tüm hizmetler ve bunların yapılandırılabilir seçenekleri listelenmiştir.
services.docker.enable
Rootless docker'ın etkinleştirilip etkinleştirilmeyeceği.
Tür: boole
Varsayılan: false
Örnek: true
services.mongodb.enable
MongoDB sunucusunun etkinleştirilip etkinleştirilmeyeceği.
Tür: boole
Varsayılan: false
Örnek: true
services.mongodb.package
Kullanılacak MongoDB paketi.
Tür: paket
Varsayılan: <derivation mongodb-6.0.11>
services.mongodb.port
Mongod'un dinleyeceği bağlantı noktasını yapılandırır.
Varsayılan olarak TCP devre dışıdır ve Mongod yalnızca /tmp/mongodb/mongodb.sock adresinde dinler.
Bağlanmak için mongodb://%2Ftmp%2Fmongodb%2Fmongodb.sock
bağlantı dizesini kullanın.
Tür: 16 bit işaretsiz tam sayı; 0 ile 65.535 arasında (ikisi de dahil)
Varsayılan: 0
services.mysql.enable
MySQL sunucusunun etkinleştirilip etkinleştirilmeyeceği.
Sunucu, şifresiz bir kök kullanıcıyla başlatılır. Bu nedenle, ek kullanıcılar ve veritabanları oluşturmak için mysql -u root
kullanın.
Tür: boole
Varsayılan: false
Örnek: true
services.mysql.package
Kullanılacak MySQL paketi.
Tür: paket
Varsayılan: pkgs.mysql
Örnek: pkgs.mysql80
services.postgres.enable
PostgreSQL sunucusunun etkinleştirilip etkinleştirilmeyeceği.
Tür: boole
Varsayılan: false
Örnek: true
services.postgres.enableTcp
Postgres'in TCP'de dinleme yapmasını etkinleştirme.
Tür: boole
Varsayılan: true
Örnek: true
services.postgres.package
Kullanılacak PostgreSQL paketi.
Tür: paket
Varsayılan: pkgs.postgresql
Örnek: pkgs.postgresql_15
services.postgres.extensions
Yüklenecek Postgres uzantıları.
Tür: "age", "apache_datasketches", "cstore_fdw", "hypopg", "jsonb_deep_sum", "periods", "pg_auto_failover", "pg_bigm", "pg_cron", "pg_ed25519", "pg_embedding", "pg_hint_plan", "pg_hll", "pg_ivm", "pg_net", "pg_partman", "pg_rational", "pg_relusage", "pg_repack", "pg_safeupdate", "pg_similarity", "pg_topn", "pg_uuidv7", "pgaudit", "pgjwt", "pgroonga", "pgrouting", "pgsql-http", "pgtap", "pgvector", "plpgsql_check", "plr", "plv8", "postgis", "promscale_extension", "repmgr", "rum", "smlar", "tds_fdw", "temporal_tables", "timescaledb", "timescaledb-apache", "timescaledb_toolkit", "tsearch_extras", "tsja", "wal2json" seçeneklerinden biri)
Varsayılan: [ ]
Örnek: [ "pgvector" "postgis" ];
services.pubsub.enable
Google Pub/Sub emülatörünün etkinleştirilip etkinleştirilmeyeceği.
Emülatör kullanımıyla ilgili daha fazla dokümanı şu adreste bulabilirsiniz: https://cloud.google.com/pubsub/docs/emulator#using_the_emulator .
Tür: boole
Varsayılan: false
Örnek: true
services.pubsub.port
Pub/Sub'ın dinleyeceği bağlantı noktasını yapılandırır.
Tür: 16 bit işaretsiz tam sayı; 0 ile 65.535 arasında (ikisi de dahil)
Varsayılan: 8085
services.pubsub.project-id
Pub/Sub emülatörünü çalıştırmak için kullanılacak proje kimliği. Bu proje yalnızca test amaçlıdır, var olması gerekmez ve yalnızca yerel olarak kullanılır.
Tür: [a-z][a-z0-9-]{5,29} kalıbıyla eşleşen dize
Varsayılan: "idx-pubsub-emulator"
services.redis.enable
Redis sunucusunun etkinleştirilip etkinleştirilmeyeceği.
Tür: boole
Varsayılan: false
Örnek: true
services.redis.port
Redis'in dinleyeceği bağlantı noktasını yapılandırır.
Varsayılan olarak TCP devre dışıdır ve redis yalnızca /tmp/redis/redis.sock adresinde dinler.
Tür: 16 bit işaretsiz tam sayı; 0 ile 65.535 arasında (ikisi de dahil)
Varsayılan: 0
services.spanner.enable
Google Cloud Spanner Emulator'un etkinleştirilip etkinleştirilmeyeceği.
Tür: boole
Varsayılan: false
Örnek: true
services.spanner.fault-injection
İşlemlere rastgele hata ekleme özelliğinin etkinleştirilip etkinleştirilmeyeceği.
Tür: boole
Varsayılan: false
Örnek: true
services.spanner.grpc-port
Emülatöre bağlanacak TCP bağlantı noktası.
Tür: 16 bit işaretsiz tam sayı; 0 ile 65.535 arasında (ikisi de dahil)
Varsayılan: 9010
services.spanner.rest-port
REST isteklerinin sunulduğu bağlantı noktası
Tür: 16 bit işaretsiz tam sayı; 0 ile 65.535 arasında (ikisi de dahil)
Varsayılan: 9020