این صفحه شامل جزئیات طرحواره فایل پیکربندی محیط فضای کاری شما است که همیشه باید در .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"، "stable-24.05"، "stable-24.11"، "unstable"
پیش فرض: "stable-23.11"
متغیرهای محیطی که در داخل محیط توسعه دهنده تنظیم می شوند.
اینها به همه پوستههای شما و سرور پیشنمایش منتشر میشوند. اگر برنامه شما به مجموعه ای از متغیرها نیاز داشته باشد، متغیرهای محیطی می توانند مفید باشند.
مقدار هر متغیر می تواند یک رشته یا یک لیست از رشته ها باشد. دومی به هم پیوسته است و با کاراکترهای کولون در هم آمیخته است.
PATH
باید یک لیست باشد، زیرا همیشه گسترش می یابد و هرگز به طور کامل جایگزین نمی شود.
مثال:
{pkgs, ...}: {
env = {
HELLO = "world";
# append an entry to PATH
PATH = ["/some/path/bin"];
};
}
نوع: مجموعه ویژگی ((لیست رشته) یا هر چیز دیگری)
پیش فرض: { }
پسوندهای کدی که می خواهید در فضای کاری IDX خود نصب کنید.
این فهرستی از شناسههای برنامه افزودنی کاملاً واجد شرایط است، برای مثال ${publisherId}.${extensionId}
.
میتوانید فهرستی از برنامههای افزودنی موجود را در Open VSX Registry بیابید و آنها را با ${publisherId}.${extensionId}
در فایل dev.nix
خود وارد کنید.
نوع: فهرست (رشته یا مسیر غیر خالی)
پیش فرض: [ ]
برای فعال کردن IDX Previews، این را روی true
تنظیم کنید.
این ویژگی راهی برای اجرا و بارگیری خودکار برنامههای شما در حین توسعه آنها فراهم میکند.
نوع: بولی
پیش فرض: true
مثال: true
پیش نمایش تنظیمات
دستوراتی را که IDX در محیط توسعه دهنده خود اجرا می کند را تعریف کنید.
مثال:
{pkgs, ...}: {
idx.previews = {
enable = true;
previews = {
web = {
command = ["yes"];
cwd = "subfolder";
manager = "web";
env = {
HELLO = "world";
};
};
};
};
}
نوع: مجموعه ویژگی (زیر ماژول)
پیش فرض: { }
فعالیت راه اندازی Android
نوع: رشته
پیش فرض: ""
دستور اجرا
نوع: لیست رشته ها
پیش فرض: [ ]
دایرکتوری کار
نوع: رشته
پیش فرض: ""
متغیرهای محیطی برای تنظیم
نوع: مجموعه ویژگی های رشته
پیش فرض: { }
مدیر
نوع: یکی از "web"، "flutter"، "android"، "gradle"
دستوراتی که باید هنگام ایجاد و باز شدن فضای کاری برای اولین بار اجرا شوند.
این می تواند برای راه اندازی محیط توسعه مفید باشد. به عنوان مثال، در اینجا ما npm install
برای اجرا مشخص می کنیم:
{pkgs, ...}: {
idx.workspace.onCreate = {
npm-install = "npm install";
# files to open when the workspace is first opened.
default.openFiles = [ "src/index.ts" ];
};
}
نوع: مجموعه ویژگی (مسیر یا رشته یا ({ openFiles = [ رشته ];}))
پیش فرض: { }
دستوراتی که هر زمان که فضای کاری باز می شود اجرا می شود.
این می تواند برای شروع ساخت ناظران مفید باشد. به عنوان مثال، در اینجا ما 2 دستور را برای اجرا مشخص می کنیم:
{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" ];
};
}
نوع: مجموعه ویژگی (مسیر یا رشته یا ({ openFiles = [ رشته ];}))
پیش فرض: { }
می توانید فایل dev.nix خود را با یک فایل وارد شده گسترش دهید.
# dev.nix
{ pkgs, ... }: {
imports = [
./some-file.nix
];
# ...
}
# some-file.nix
{ pkgs, ... }: {
packages = [
pkgs.python3
];
# ...
}
دلایل متعددی وجود دارد که ممکن است بخواهید یک فایل .nix
سفارشی را در dev.nix
وارد کنید:
فایل
dev.nix
شما بزرگ است و میخواهید برای بهبود قابلیت نگهداری آن را مدولار کنید.{ pkgs, ... }: { channel = "stable-24.11"; # ... imports = [ ./env-cfg.nix ./preview-config.nix ]; }
میخواهید گزینههای خاص محیط محلی خود را پیکربندی کنید و فایل را به لیست
.gitignore
خود اضافه کنید.# dev.nix { pkgs, lib, ... }: { # ... imports = lib.optionals (builtins.pathExists ./dev.local.nix ) [ ./dev.local.nix ]; }
#.gitignore .idx/dev.local.nix
نوع: لیست مسیر
پیش فرض: [ ]
سرویسهای رایج برای فعال کردن هنگام باز شدن فضای کاری.
به عنوان مثال، برای فعال کردن Postgres و استفاده از پسوند pgvector
، موارد زیر را به dev.nix
اضافه کنید:
services.postgres = {
extensions = ["pgvector"];
enable = true;
};
بخشهای زیر همه سرویسهای پشتیبانیشده و گزینههای قابل تنظیم آنها را فهرست میکند.
فعال کردن روتلس داکر.
نوع: بولی
پیش فرض: false
مثال: true
فعال کردن سرور MongoDB.
نوع: بولی
پیش فرض: false
مثال: true
بسته MongoDB برای استفاده.
نوع: بسته بندی
پیش فرض: <derivation mongodb-6.0.11>
پورتی را که Mongod به آن گوش خواهد داد پیکربندی می کند.
به طور پیش فرض tcp غیرفعال است و Mongod فقط به /tmp/mongodb/mongodb.sock گوش می دهد.
برای اتصال، از رشته اتصال mongodb://%2Ftmp%2Fmongodb%2Fmongodb.sock
استفاده کنید.
نوع: عدد صحیح بدون علامت 16 بیتی. بین 0 و 65535 (هر دو شامل)
پیش فرض: 0
فعال کردن سرور MySQL.
سرور با روت کاربر بدون رمز عبور مقداردهی اولیه می شود. بنابراین برای ایجاد کاربران اضافی و ایجاد پایگاه داده از mysql -u root
استفاده کنید.
نوع: بولی
پیش فرض: false
مثال: true
بسته MySQL برای استفاده.
نوع: بسته بندی
پیش فرض: pkgs.mysql
مثال: pkgs.mysql80
فعال کردن سرور PostgreSQL.
نوع: بولی
پیش فرض: false
مثال: true
Postgres برای گوش دادن در TCP فعال شود یا خیر.
نوع: بولی
پیش فرض: true
مثال: true
بسته PostgreSQL برای استفاده.
نوع: بسته بندی
پیش فرض: pkgs.postgresql
مثال: pkgs.postgresql_15
پسوندهای Postgres برای نصب.
نوع: لیستی از (یکی از "age"، "apache_datasketches"، "cstore_fdw"، "hypopg"، "jsonb_deep_sum"، "periods"، "pg_auto_failover"، "pg_bigm"، "pg_cron"، "pg_ed25519"، "pg_embeding", "pg_embeding"،_phint "pg_ivm"، "pg_net"، "pg_partman"، "pg_rational"، "pg_relusage"، "pg_repack"، "pg_safeupdate"، "pg_similarity"، "pg_topn"، "pg_uuidv7"، "pgaudit"، "pgjwt"، "pgrouts-pgroonga"، "pgrouts" "pgvector"، "plpgsql_check"، "plr"، "plv8"، "postgis"، "promscale_extension"، "repmgr"، "rum"، "smlar"، "tds_fdw"، "temporal_tables"، "timescaledb"، "timescaledb-apache"، "timescaledb_search_ext"، "timescaledb_search_ext"، "2.
پیش فرض: [ ]
مثال: [ "pgvector" "postgis" ];
فعال کردن شبیه ساز Google Pub/Sub.
اسناد بیشتر در مورد استفاده از شبیه ساز را می توانید در اینجا بیابید: https://cloud.google.com/pubsub/docs/emulator#using_the_emulator .
نوع: بولی
پیش فرض: false
مثال: true
پورتی را که Pub/Sub به آن گوش می دهد پیکربندی می کند.
نوع: عدد صحیح بدون علامت 16 بیتی. بین 0 و 65535 (هر دو شامل)
پیش فرض: 8085
شناسه پروژه برای اجرای شبیه ساز Pub/Sub. این پروژه فقط برای آزمایش است، لازم نیست وجود داشته باشد و فقط به صورت محلی استفاده می شود.
نوع: رشته مطابق با الگو [az][a-z0-9-]{5,29}
پیش فرض: "idx-pubsub-emulator"
فعال کردن سرور Redis.
نوع: بولی
پیش فرض: false
مثال: true
پورتی را که Redis به آن گوش می دهد پیکربندی می کند.
به طور پیش فرض tcp غیرفعال است و redis فقط به /tmp/redis/redis.sock گوش می دهد.
نوع: عدد صحیح بدون علامت 16 بیتی. بین 0 و 65535 (هر دو شامل)
پیش فرض: 0
فعال کردن شبیه ساز Google Cloud Spanner.
نوع: بولی
پیش فرض: false
مثال: true
فعال کردن تزریق تصادفی خطا در تراکنشها.
نوع: بولی
پیش فرض: false
مثال: true
پورت TCP که شبیه ساز باید به آن متصل شود.
نوع: عدد صحیح بدون علامت 16 بیتی. بین 0 و 65535 (هر دو شامل)
پیش فرض: 9010
پورتی که درخواست های REST در آن ارائه می شود
نوع: عدد صحیح بدون علامت 16 بیتی. بین 0 و 65535 (هر دو شامل)
پیش فرض: 9020