Referensi dev.nix

Halaman ini menyertakan detail skema untuk lingkungan ruang kerja Anda file konfigurasi khusus, yang harus selalu berada di .idx/dev.nix.

Untuk mempelajari bahasa Nix, lihat bahasa resmi Nix tutorial.

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.

Contoh:

{pkgs, ...}: {
  channel = "stable-23.11";
  packages = [pkgs.vim];
}

Anda dapat mencari paket yang tersedia di sini: stable-23.11 atau tidak stabil.

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", "stable-24.05", "unstable"

Default: "stable-23.11"

env

Variabel lingkungan yang ditetapkan di dalam lingkungan developer.

Hal ini akan disebarkan ke semua shell dan server pratinjau. Lingkungan variabel bisa sangat berguna jika aplikasi memerlukan set variabel.

Nilai setiap variabel dapat berupa string atau daftar string. Tujuan yang terakhir digabungkan, diselingi dengan karakter titik dua.

PATH harus berupa daftar, karena selalu diperluas dan tidak pernah diganti sepenuhnya.

Contoh:

{pkgs, ...}: {
  env = {
    HELLO = "world";
    # append an entry to PATH
    PATH = ["/some/path/bin"];
  };
}

Jenis: kumpulan atribut ((daftar string) atau apa pun)

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 Buka VSX Registry dan masukkan ke 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 memberikan cara untuk menjalankan dan memuat ulang aplikasi Anda 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.&lt;name&gt;.activity

Aktivitas Peluncuran Android

Jenis: string

Default: ""

idx.previews.previews.&lt;name&gt;.command

Perintah untuk menjalankan

Jenis: daftar string

Default: [ ]

idx.previews.previews.&lt;name&gt;.cwd

Direktori yang berfungsi

Jenis: string

Default: ""

idx.previews.previews.&lt;name&gt;.env

Variabel lingkungan yang akan ditetapkan.

Jenis: kumpulan atribut string

Default: { }

idx.previews.previews.&lt;name&gt;.manager

Manajer

Jenis: salah satu dari "web", "flutter", "android", "gradle"

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";
    # files to open when the workspace is first opened.
    default.openFiles = [ "src/index.ts" ];
  };
}

Type: kumpulan atribut (jalur atau string atau ({ openFiles = [ string ];}))

Default: { }

idx.workspace.onStart

Perintah yang akan dieksekusi setiap kali ruang kerja dibuka.

Hal ini berguna untuk memulai membangun watcher. Misalnya, di sini kita menentukan 2 perintah untuk dijalankan:

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

Type: kumpulan atribut (jalur atau string atau ({ openFiles = [ string ];}))

Default: { }

services.docker.enable

Menentukan apakah akan mengaktifkan docker Rootless.

Jenis: boolean

Default: false

Contoh: true

services.mongodb.enable

Apakah akan mengaktifkan server MongoDB.

Jenis: boolean

Default: false

Contoh: true

services.mongodb.package

Paket MongoDB yang akan digunakan.

Jenis: paket

Default: <derivation mongodb-6.0.11>

services.mongodb.port

Mengonfigurasi port yang akan diproses oleh Mongod.

Secara {i>default<i} {i>tcp<i} dinonaktifkan dan Mongod hanya mendengarkan di {i> /tmp/mongodb/mongodb.sock<i}. Untuk menghubungkan, gunakan string koneksi "mongodb://%2Ftmp%2Fmongodb%2Fmongodb.sock"

Jenis: Bilangan bulat 16 bit tanpa label; antara 0 dan 65535 (keduanya inklusif)

Default: 0

services.mysql.enable

Menentukan apakah akan mengaktifkan server MySQL.

Server diinisialisasi dengan root pengguna tanpa sandi. Jadi, untuk membuat pengguna dan membuat database akan menggunakan 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.enableTcp

Menentukan apakah akan mengaktifkan Postgres untuk memproses di TCP.

Jenis: boolean

Default: true

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.

Jenis: daftar (salah satu dari "age", "apache_datasketches", "cstore_fdw", "hypopg", "jsonb_deep_sum", "periode", "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")

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. Proyek ini hanya untuk pengujian, itu 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

Menentukan 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