مرجع dev.nix

این صفحه شامل جزئیات طرحواره فایل پیکربندی محیط فضای کاری شما است که همیشه باید در آدرس .idx/dev.nix قرار گیرد.

برای آشنایی با زبان Nix، به آموزش رسمی زبان Nix مراجعه کنید.

بسته ها

بسته هایی برای نصب در محیط.

می توانید از آرگومان pkgs برای انتخاب بسته هایی برای نصب استفاده کنید، برای مثال pkgs.python3 . توجه داشته باشید که محتوای pkgs به گزینه کانال channel انتخاب شده بستگی دارد.

مثال:

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

می‌توانید بسته‌های موجود را در اینجا جستجو کنید: stable-23.11 یا unstable .

نوع: لیست بسته

پیش فرض: [ ]

کانال

کانال nixpkgs برای استفاده.

این کانال محتویات آرگومان pkgs را تعریف می کند.

نوع: یکی از "stable-23.05"، "stable-23.11"، "unstable"

پیش فرض: "stable-23.11"

env

متغیرهای محیطی که در داخل محیط توسعه دهنده تنظیم می شوند.

اینها به همه پوسته‌های شما و سرور پیش‌نمایش منتشر می‌شوند. اگر برنامه شما به مجموعه ای از متغیرها نیاز داشته باشد، متغیرهای محیطی می توانند مفید باشند.

مثال:

{pkgs, ...}: {
  env = {
    HELLO = "world";
  };
}

نوع: مجموعه ویژگی هر چیزی

پیش فرض: { }

idx.extensions

پسوندهای کدی که می خواهید در فضای کاری IDX خود نصب کنید.

این فهرستی از شناسه‌های برنامه افزودنی کاملاً واجد شرایط است، برای مثال ${publisherId}.${extensionId} .

می‌توانید فهرستی از برنامه‌های افزودنی موجود را در Open VSX Registry بیابید و آنها را با ${publisherId}.${extensionId} در فایل dev.nix خود وارد کنید.

نوع: فهرست (رشته یا مسیر غیر خالی)

پیش فرض: [ ]

idx.previews.enable

برای فعال کردن IDX Previews، این را روی true تنظیم کنید.

این ویژگی راهی برای اجرا و بارگیری خودکار برنامه‌های شما در حین توسعه آنها فراهم می‌کند.

نوع: بولی

پیش فرض: true

مثال: true

idx.previews.previews

پیش نمایش تنظیمات

دستوراتی را که IDX در محیط توسعه دهنده خود اجرا می کند را تعریف کنید.

مثال:

{pkgs, ...}: {
  idx.previews = {
    enable = true;
    previews = {
      web = {
        command = ["yes"];
        cwd = "subfolder";
        manager = "web";
        env = {
          HELLO = "world";
        };
      };
    };
  };
}

نوع: مجموعه ویژگی (زیر ماژول)

پیش فرض: { }

idx.previews.previews.<name>.command

دستور اجرا

نوع: لیست رشته ها

پیش فرض: [ ]

idx.previews.previews.<name>.cwd

دایرکتوری کاری

نوع: رشته

پیش فرض: ""

idx.previews.previews.<name>.env

متغیرهای محیطی برای تنظیم

نوع: مجموعه ویژگی های رشته

پیش فرض: { }

idx.previews.previews.<name>.manager

مدیر

نوع: یکی از "وب"، "فلاتر"

idx.workspace.onCreate

دستوراتی که باید هنگام ایجاد و باز شدن فضای کاری برای اولین بار اجرا شوند.

این می تواند برای راه اندازی محیط توسعه مفید باشد. به عنوان مثال، در اینجا ما npm install برای اجرا مشخص می کنیم:

{pkgs, ...}: {
  idx.workspace.onCreate = {
    npm-install = "npm install";
  };
}

نوع: مجموعه ویژگی (مسیر یا رشته)

پیش فرض: { }

idx.workspace.onStart

دستوراتی که هر زمان که فضای کاری باز می شود اجرا می شود.

این می تواند برای شروع ساخت ناظران مفید باشد. به عنوان مثال، در اینجا ما 2 دستور را برای اجرا مشخص می کنیم:

{pkgs, ...}: {
  idx.workspace.onStart = {
    npm-watch-fe = "npm run watch:frontend";
    npm-watch-be = "npm run watch:backend";
  };
}

نوع: مجموعه ویژگی (مسیر یا رشته)

پیش فرض: { }

services.docker.enable

فعال کردن روتلس داکر.

نوع: بولی

پیش فرض: false

مثال: true

services.mysql.enable

فعال کردن سرور MySQL.

سرور با روت کاربر بدون رمز عبور مقداردهی اولیه می شود. بنابراین برای ایجاد کاربران اضافی و ایجاد پایگاه داده از mysql -u root استفاده کنید. .

نوع: بولی

پیش فرض: false

مثال: true

Services.mysql.package

بسته MySQL برای استفاده.

نوع: بسته بندی

پیش فرض: pkgs.mysql

مثال: pkgs.mysql80

services.postgres.enable

فعال کردن سرور PostgreSQL.

نوع: بولی

پیش فرض: false

مثال: true

Services.postgres.package

بسته PostgreSQL برای استفاده.

نوع: بسته بندی

پیش فرض: pkgs.postgresql

مثال: pkgs.postgresql_15

services.postgres.extensions

پسوندهای Postgres برای نصب.

نوع: فهرست (یکی از "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")

پیش فرض: [ ]

مثال: [ "pgvector" "postgis" ];

services.pubsub.enable

فعال کردن شبیه ساز Google Pub/Sub.

اسناد بیشتر در مورد استفاده از شبیه ساز را می توانید در اینجا بیابید: https://cloud.google.com/pubsub/docs/emulator#using_the_emulator .

نوع: بولی

پیش فرض: false

مثال: true

services.pubsub.port

پورتی را که Pub/Sub به آن گوش می دهد پیکربندی می کند.

نوع: عدد صحیح بدون علامت 16 بیتی. بین 0 و 65535 (هر دو شامل)

پیش فرض: 8085

services.pubsub.project-id

شناسه پروژه برای اجرای شبیه ساز Pub/Sub. این پروژه فقط برای آزمایش است، لازم نیست وجود داشته باشد و فقط به صورت محلی استفاده می شود.

نوع: رشته مطابق با الگو [az][a-z0-9-]{5,29}

پیش فرض: "idx-pubsub-emulator"

services.redis.enable

فعال کردن سرور Redis.

نوع: بولی

پیش فرض: false

مثال: true

services.redis.port

پورتی را که Redis به آن گوش می دهد پیکربندی می کند.

به طور پیش فرض tcp غیرفعال است و redis فقط به /tmp/redis/redis.sock گوش می دهد.

نوع: عدد صحیح بدون علامت 16 بیتی. بین 0 و 65535 (هر دو شامل)

پیش فرض: 0

services.spanner.enable

فعال کردن شبیه ساز Google Cloud Spanner.

نوع: بولی

پیش فرض: false

مثال: true

Services.spanner.gault-injection

اینکه آیا تزریق تصادفی خطا به تراکنش‌ها فعال شود.

نوع: بولی

پیش فرض: false

مثال: true

services.spanner.grpc-port

پورت TCP که شبیه ساز باید به آن متصل شود.

نوع: عدد صحیح بدون علامت 16 بیتی. بین 0 و 65535 (هر دو شامل)

پیش فرض: 9010

services.spanner.rest-port

پورتی که درخواست های REST در آن ارائه می شود

نوع: عدد صحیح بدون علامت 16 بیتی. بین 0 و 65535 (هر دو شامل)

پیش فرض: 9020