Bu sayfada, çalışma alanı ortamı yapılandırma dosyanızın şemasıyla ilgili ayrıntılar yer alır. Bu dosya her zaman .idx/dev.nix
konumunda bulunmalıdır.
Nix dili hakkında bilgi edinmek için resmi Nix dili eğitimine bakın.
packages
Ortama yüklenecek paketler.
Yüklenecek paketleri seçmek için pkgs
bağımsız değişkenini kullanabilirsiniz. Örneğin:
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 burada arayabilirsiniz: stable-23.11 veya<0x0x0A>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" değerlerinden biri
Varsayılan: "stable-23.11"
env
Geliştirme ortamında ayarlanan ortam değişkenleri.
Bunlar, tüm kabuklarınıza ve önizleme sunucusuna yayılır. Uygulamanız belirli bir değişken grubu gerektiriyorsa ortam değişkenleri özellikle yararlı olabilir.
Her değişkenin değeri bir dize veya dizeler listesi olabilir. İkincisi, iki nokta üst üste karakterlerle serpiştirilerek 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) özellik 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}
).
Kullanılabilir uzantıların listesini Open VSX Registry'de bulabilir ve dev.nix
dosyanıza ${publisherId}.${extensionId}
ile girebilirsiniz.
Tür: (boş olmayan dize veya yol) listesi
Varsayılan: [ ]
idx.previews.enable
IDX önizlemelerini etkinleştirmek için bu ayarı true
olarak belirleyin.
Bu özellik, uygulamalarınızı geliştirirken otomatik olarak çalıştırmanıza ve yeniden yüklemenize olanak tanır.
Tür: boole
Varsayılan: true
Örnek: true
idx.previews.previews
Yapılandırmaları önizleyin.
IDX'in geliştirme 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) öznitelik grubu
Varsayılan: { }
idx.previews.previews.<name>.activity
Android Launch Activity
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 öznitelik grubu
Varsayılan: { }
idx.previews.previews.<name>.manager
Yönetici
Tür: "web", "flutter", "android", "gradle" değerlerinden biri
idx.workspace.onCreate
Çalışma alanı oluşturulup ilk kez açıldığında yürütülecek komutlar.
Bu, geliştirme ortamını ayarlamak için yararlı olabilir. Örneğin, burada çalıştırılacak npm install
belirtiliyor:
{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 = [ dize ];})) özellik grubu
Varsayılan: { }
idx.workspace.onStart
Çalışma alanı her açıldığında yürütülecek komutlar.
Bu, izleyici oluşturmaya başlamak için yararlı olabilir. Örneğin, burada çalıştırılacak 2 komut 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 = [ dize ];})) ö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
];
# ...
}
.nix
'da özel bir dev.nix
dosyası içe aktarmak istemenizin birden fazla nedeni olabilir:
dev.nix
dosyanız büyük ve bakımı kolaylaştırmak için modüler hale getirmek istiyorsunuz.{ pkgs, ... }: { channel = "stable-24.11"; # ... imports = [ ./env-cfg.nix ./preview-config.nix ]; }
Yerel ortamınıza özel 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
Çalışma alanı açıldığında etkinleştirilecek yaygın hizmetler.
Örneğin, PostgreSQL'i etkinleştirmek ve pgvector
uzantısını kullanmak için dev.nix
'e aşağıdakileri ekleyin:
services.postgres = {
extensions = ["pgvector"];
enable = true;
};
Aşağıdaki bölümlerde, desteklenen tüm hizmetler ve 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 adresini dinler.
Bağlanmak için bağlantı dizesini kullanın
mongodb://%2Ftmp%2Fmongodb%2Fmongodb.sock
.
Tür: 16 bit işaretsiz tam sayı; 0 ile 65535 arasında (ikisi de dahil)
Varsayılan: 0
services.mysql.enable
MySQL sunucusunun etkinleştirilip etkinleştirilmeyeceği.
Sunucu, şifresiz kullanıcı köküyle 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 üzerinden dinlemesini etkinleştirme seçeneği.
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: Liste ("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" değerlerinden 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ün 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 65535 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 adresini dinler.
Tür: 16 bit işaretsiz tam sayı; 0 ile 65535 arasında (ikisi de dahil)
Varsayılan: 0
services.spanner.enable
Google Cloud Spanner Emulator'ın etkinleştirilip etkinleştirilmeyeceği.
Tür: boole
Varsayılan: false
Örnek: true
services.spanner.fault-injection
İşlemlere rastgele hata eklemenin etkinleştirilip etkinleştirilmeyeceği.
Tür: boole
Varsayılan: false
Örnek: true
services.spanner.grpc-port
Emülatörün bağlanması gereken TCP bağlantı noktası.
Tür: 16 bit işaretsiz tam sayı; 0 ile 65535 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 65535 arasında (ikisi de dahil)
Varsayılan: 9020