מסמך עזר של dev.nix

הדף הזה כולל פרטים על הסכימה של סביבת העבודה קובץ תצורה, שתמיד צריך להיות ב-.idx/dev.nix.

מידע נוסף על השפה של Nix זמין בשפה הרשמית של Nix המדריך.

חבילות

חבילות להתקנה בסביבה.

לדוגמה, אפשר להשתמש בארגומנט pkgs כדי לבחור חבילות להתקנה. pkgs.python3. חשוב לזכור שהתוכן של pkgs תלוי באפשרות שנבחרה אפשרות אחת (channel) לערוץ.

דוגמה:

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

אתם יכולים לחפש חבילות זמינות כאן: stable-23.11 או לא יציבה.

סוג: רשימת חבילה

ברירת המחדל: [ ]

ערוץ

ערוץ nixpkgs לשימוש.

הערוץ הזה מגדיר את התוכן של הארגומנט pkgs.

סוג: אחד מהערכים 'stable-23.05', 'stable-23.11', "stable-24.05", "unstable"

ברירת המחדל: "stable-23.11"

env

משתני סביבה שמוגדרים בסביבת הפיתוח.

הן יופצו לכל המעטפת שלכם ולשרת התצוגה המקדימה. סביבה יכולים להיות שימושיים במיוחד אם האפליקציה שלכם דורשת קבוצה ספציפית של משתנים.

הערך של כל משתנה יכול להיות מחרוזת או רשימת מחרוזות. הן משורשרות ומופרדות בתווי נקודתיים.

PATH חייבת להיות רשימה כי היא תמיד מורחבת ואף פעם לא מחליפה אותה לגמרי.

דוגמה:

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

סוג: קבוצת מאפיינים של ((רשימת מחרוזת) או כל דבר אחר)

ברירת המחדל: { }

idx.extensions

תוספי הקוד שרוצים להתקין בסביבת העבודה של IDX.

לדוגמה, זוהי רשימה של מזהי תוספים מוגדרים במלואם. ${publisherId}.${extensionId}

אפשר למצוא רשימה של התוספים הזמינים פותחים את VSX Registry ומזינים אותם בקובץ dev.nix מאת ${publisherId}.${extensionId}.

סוג: רשימה של (מחרוזת או נתיב שאינם ריקים)

ברירת המחדל: [ ]

idx.previews.enable

צריך להגדיר את הערך true כדי להפעיל את התצוגה המקדימה של IDX.

התכונה הזו מאפשרת להריץ את האפליקציות ולטעון אותן מחדש באופן אוטומטי בזמן אמת לפתח אותם.

סוג: בוליאני

ברירת המחדל: 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>.activity

פעילות ההפעלה ב-Android

סוג: מחרוזת

ברירת המחדל: ""

idx.previews.previews.<name>.command

הפקודה שצריך לבצע

סוג: רשימת מחרוזות

ברירת המחדל: [ ]

idx.previews.previews.<name>.cwd

ספריית עבודה

סוג: מחרוזת

ברירת המחדל: ""

idx.previews.previews.<name>.env

משתני סביבה להגדרה.

סוג: קבוצת מאפיינים של מחרוזת

ברירת המחדל: { }

idx.previews.previews.<name>.manager

ניהול

סוג: אחד מהסוגים הבאים: "web", "flutter", "android", "gradle"

idx.workspace.onCreate

הפקודות להפעלה בזמן יצירה ופתיחה של סביבת העבודה בפעם הראשונה.

האפשרות הזו יכולה להיות שימושית כדי להגדיר את סביבת הפיתוח. לדוגמה, כאן יש לנו מציינים את 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 = [ string ];}))

ברירת המחדל: { }

idx.workspace.onStart

הפקודות שיופעלו בכל פעם שסביבת העבודה תיפתח.

האפשרות הזו יכולה לעזור לכם להתחיל ליצור צופים. לדוגמה, כאן אנחנו מציינים 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 = [ string ];}))

ברירת המחדל: { }

services.docker.enable

הגדרה שקובעת אם להפעיל עגינה ללא Root.

סוג: בוליאני

ברירת המחדל: false

לדוגמה: true

services.mongodb.enable

הגדרה שקובעת אם להפעיל שרת MongoDB.

סוג: בוליאני

ברירת המחדל: false

לדוגמה: true

services.mongodb.package

חבילת MongoDB לשימוש.

סוג: חבילה

ברירת המחדל: <derivation mongodb-6.0.11>

services.mongodb.port

הגדרת היציאה שבה Mongod יאזין.

כברירת מחדל, tcp מושבת ו-Mongod מאזין רק ל- /tmp/mongodb/mongodb.sock. כדי להתחבר, צריך להשתמש במחרוזת החיבור "mongodb://%2Ftmp%2Fmongodb%2Fmongodb.sock"

סוג: מספר שלם לא חתום באורך 16 ביט. בין 0 ל-65535 (שניהם כולל)

ברירת המחדל: 0

services.mysql.enable

האם להפעיל את שרת MySQL.

השרת הופעל עם הרמה הבסיסית (root) של המשתמש ללא סיסמה. אז כדי ליצור משתמשים ויוצרים מסדי נתונים להשתמש ב-mysql -u root. .

סוג: בוליאני

ברירת המחדל: false

לדוגמה: true

services.mysql.package

חבילת MySQL לשימוש.

סוג: חבילה

ברירת המחדל: pkgs.mysql

לדוגמה: pkgs.mysql80

services.postgres.enable

האם להפעיל שרת PostgreSQL.

סוג: בוליאני

ברירת המחדל: false

לדוגמה: true

services.postgres.enableTcp

הגדרה שקובעת אם להפעיל את Postgres להאזין ב-TCP.

סוג: בוליאני

ברירת המחדל: true

לדוגמה: true

services.postgres.package

חבילת PostgreSQL לשימוש.

סוג: חבילה

ברירת המחדל: pkgs.postgresql

לדוגמה: pkgs.postgresql_15

services.postgres.extensions

תוספי Postgres להתקנה.

סוג: list of (one of "age", "apache_datasketches", "cstore_fdw", "hypopg", 'jsonb_deep_sum', 'periods', 'pg_auto_failover', 'pg_bizm', '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. הפרויקט הזה מיועד לבדיקה בלבד. הוא לא חייב להיות קיים והוא משמש רק באופן מקומי.

סוג: מחרוזת שתואמת לדפוס [a-z][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.fault-injection

האם להפעיל החדרת תקלות אקראית לטרנזקציות.

סוג: בוליאני

ברירת המחדל: false

לדוגמה: true

services.spanner.grpc-port

יציאת ה-TCP שאליה צריך לקשר את האמולטור.

סוג: מספר שלם לא חתום באורך 16 ביט. בין 0 ל-65535 (שניהם כולל)

ברירת המחדל: 9010

services.spanner.rest-port

היציאה שבה מוגשות בקשות REST

סוג: מספר שלם לא חתום באורך 16 ביט. בין 0 ל-65535 (שניהם כולל)

ברירת המחדל: 9020