Halaman ini menyertakan detail skema untuk file konfigurasi lingkungan ruang kerja Anda, yang harus selalu berada di .idx/dev.nix
.
Untuk mempelajari bahasa Nix, lihat tutorial bahasa Nix resmi.
paket
Paket yang akan diinstal di lingkungan.
Anda dapat menggunakan argumen pkgs
untuk memilih paket yang akan diinstal, misalnya
pkgs.python3
. Perhatikan bahwa konten pkgs
bergantung pada opsi saluran
channel
yang dipilih.
Contoh:
{pkgs, ...}: {
channel = "stable-23.11";
packages = [pkgs.vim];
}
Anda dapat menelusuri paket yang tersedia di sini: stable-23.11 atau unstable.
Jenis: daftar paket
Default: [ ]
saluran
{i>nixpkgs<i} untuk digunakan.
Saluran ini menentukan konten argumen pkgs
.
Jenis: salah satu dari "stable-23.05", "stable-23.11", "unstable"
Default: "stable-23.11"
env
Variabel lingkungan yang ditetapkan di dalam lingkungan developer.
Hal ini akan disebarkan ke semua shell dan server pratinjau. Variabel lingkungan dapat sangat berguna jika aplikasi Anda memerlukan sekumpulan variabel tertentu.
Contoh:
{pkgs, ...}: {
env = {
HELLO = "world";
};
}
Type: kumpulan atribut apa saja
Default: { }
idx.extensions
Ekstensi kode yang ingin Anda instal di ruang kerja IDX.
Ini adalah daftar ID ekstensi yang sepenuhnya memenuhi syarat, misalnya ${publisherId}.${extensionId}
.
Anda dapat menemukan daftar ekstensi yang tersedia di Open VSX Registry dan memasukkannya dalam file dev.nix
Anda paling lambat ${publisherId}.${extensionId}
.
Jenis: daftar (string atau jalur yang tidak kosong)
Default: [ ]
idx.previews.enable
Tetapkan string ini ke true
untuk mengaktifkan Pratinjau IDX.
Fitur ini menyediakan cara untuk menjalankan dan memuat ulang aplikasi secara otomatis saat Anda mengembangkannya.
Jenis: boolean
Default: true
Contoh: true
idx.previews.previews
Lihat pratinjau konfigurasi.
Tentukan perintah yang dijalankan IDX di lingkungan developer Anda.
Contoh:
{pkgs, ...}: {
idx.previews = {
enable = true;
previews = {
web = {
command = ["yes"];
cwd = "subfolder";
manager = "web";
env = {
HELLO = "world";
};
};
};
};
}
Jenis: kumpulan atribut (submodul)
Default: { }
idx.previews.previews.<name>.command
Perintah untuk menjalankan
Jenis: daftar string
Default: [ ]
idx.previews.previews.<name>.cwd
Direktori yang berfungsi
Jenis: string
Default: ""
idx.previews.previews.<name>.env
Variabel lingkungan yang akan ditetapkan.
Jenis: kumpulan atribut string
Default: { }
idx.previews.previews.<name>.manager
Manajer
Jenis: salah satu dari "web", "flutter"
idx.workspace.onCreate
Perintah yang akan dieksekusi saat ruang kerja dibuat dan dibuka untuk pertama kalinya.
Hal ini dapat berguna untuk menyiapkan lingkungan pengembangan. Misalnya, di sini kita menentukan npm install
untuk dijalankan:
{pkgs, ...}: {
idx.workspace.onCreate = {
npm-install = "npm install";
};
}
Jenis: kumpulan atribut (jalur atau string)
Default: { }
idx.workspace.onStart
Perintah yang akan dieksekusi setiap kali ruang kerja dibuka.
Hal ini berguna untuk memulai membangun watcher. Misalnya, di sini kami menetapkan 2 perintah untuk dijalankan:
{pkgs, ...}: {
idx.workspace.onStart = {
npm-watch-fe = "npm run watch:frontend";
npm-watch-be = "npm run watch:backend";
};
}
Jenis: kumpulan atribut (jalur atau string)
Default: { }
services.docker.enable
Menentukan apakah akan mengaktifkan docker Rootless.
Jenis: boolean
Default: false
Contoh: true
services.mysql.enable
Menentukan apakah akan mengaktifkan server MySQL.
Server diinisialisasi dengan root pengguna tanpa sandi. Jadi, untuk membuat pengguna tambahan
dan membuat database, gunakan mysql -u root
. .
Jenis: boolean
Default: false
Contoh: true
services.mysql.package
paket MySQL yang akan digunakan.
Jenis: paket
Default: pkgs.mysql
Contoh: pkgs.mysql80
services.postgres.enable
Menentukan apakah akan mengaktifkan server PostgreSQL.
Jenis: boolean
Default: false
Contoh: true
services.postgres.package
paket PostgreSQL yang akan digunakan.
Jenis: paket
Default: pkgs.postgresql
Contoh: pkgs.postgresql_15
services.postgres.extensions
Ekstensi postgres yang akan diinstal.
Type: daftar (salah satu dari "age", "apache_datasketches", "cstore_fdw", "hypopg", "jsonb_deep_sum", "periods", "pg_auto_failover", "pg_bigm", "pg_cron"ber, "pg_scale"
Default: [ ]
Contoh: [ "pgvector" "postgis" ];
services.pubsub.enable
Menentukan apakah akan mengaktifkan emulator Google Pub/Sub.
Dokumentasi selengkapnya tentang penggunaan emulator dapat ditemukan di sini: https://cloud.google.com/pubsub/docs/emulator#using_the_emulator .
Jenis: boolean
Default: false
Contoh: true
services.pubsub.port
Mengonfigurasi port yang akan diproses Pub/Sub.
Jenis: Bilangan bulat 16 bit tanpa label; antara 0 dan 65535 (keduanya inklusif)
Default: 8085
services.pubsub.project-id
ID project yang akan digunakan untuk menjalankan emulator Pub/Sub. Project ini hanya untuk pengujian, tidak harus ada dan hanya digunakan secara lokal.
Jenis: string yang cocok dengan pola [a-z][a-z0-9-]{5,29}
Default: "idx-pubsub-emulator"
services.redis.enable
Menentukan apakah akan mengaktifkan server Redis.
Jenis: boolean
Default: false
Contoh: true
services.redis.port
Mengonfigurasi port yang akan didengarkan oleh Redis.
Secara {i>default<i} {i>tcp<i} dinonaktifkan dan redis hanya memproses {i>/tmp/redis/redis.sock<i}.
Jenis: Bilangan bulat 16 bit tanpa label; antara 0 dan 65535 (keduanya inklusif)
Default: 0
services.spanner.enable
Menentukan apakah akan mengaktifkan Emulator Google Cloud Spanner.
Jenis: boolean
Default: false
Contoh: true
services.spanner.fault-injection
Apakah akan mengaktifkan injeksi kesalahan acak ke dalam transaksi.
Jenis: boolean
Default: false
Contoh: true
services.spanner.grpc-port
Port TCP yang harus diikat oleh emulator.
Jenis: Bilangan bulat 16 bit tanpa label; antara 0 dan 65535 (keduanya inklusif)
Default: 9010
services.spanner.rest-port
Port tempat permintaan REST disajikan
Jenis: Bilangan bulat 16 bit tanpa label; antara 0 dan 65535 (keduanya inklusif)
Default: 9020