מסמך עזר של 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', "unstable"

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

env

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

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

דוגמה:

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

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

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

idx.extensions

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

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

אפשר למצוא רשימה של התוספים הזמינים ב-Open 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>.command

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

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

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

idx.previews.previews.<name>.cwd

ספריית עבודה

סוג: מחרוזת

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

idx.previews.previews.<name>.env

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

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

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

idx.previews.previews.<name>.manager

ניהול

סוג: אחד מהערכים 'web', 'flutter'

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

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

סוג: בוליאני

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

לדוגמה: true

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.package

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

סוג: חבילה

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

לדוגמה: pkgs.postgresql_15

services.postgres.extensions

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

"Type: list of (one of "age", "apache_datasketches", "cstore_fdw", "hypop_popg", "jsonb_deep_sum", "periods", "pg_auto_failover", "pg_byte", "pg_cron", "apache_datasketches"

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

לדוגמה: [ "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 ל-65,535 (כולל שניהם)

ברירת המחדל: 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 ל-65,535 (כולל שניהם)

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

services.spanner.enable

האם להפעיל את אמולטור Google Cloud Spanner.

סוג: בוליאני

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

לדוגמה: true

services.spanner.fault-injection

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

סוג: בוליאני

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

לדוגמה: true

services.spanner.grpc-port

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

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

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

services.spanner.rest-port

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

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

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