בעזרת Project IDX אפשר להתאים את סביבת העבודה לצרכים הייחודיים של הפרויקט
על ידי הגדרת קובץ תצורה יחיד של .idx/dev.nix
שמתאר:
- את כלי המערכת שצריכים להיות מסוגלים להפעיל (לדוגמה, Terminal), כמו מהדרים או קבצים בינאריים אחרים.
- התוספים בסביבת הפיתוח המשולבים (IDE) שהתקנתם (לדוגמה, שפת תכנות תמיכה).
- איך אמורות להופיע תצוגות מקדימות של אפליקציות לדוגמה, הפקודות להפעלת שרת האינטרנט).
- משתני סביבה גלובליים שזמינים לשרתים מקומיים שפועלים סביבת העבודה.
אפשר לקרוא מידע נוסף בחומר העזר בנושא dev.nix
בתיאור של האפשרויות הזמינות.
Nix ו-IDX
ב-IDX משתמשים בפונקציה Nix כדי להגדיר את תצורת הסביבה לכל סביבת עבודה. באופן ספציפי, ב-IDX משתמשים:
שפת התכנות של Nix כדי לתאר את סביבות העבודה. Nix היא שפת תכנות פונקציונלית. המאפיינים וספריות החבילות שאפשר להגדיר בקובץ
dev.nix
משתמשים בקבוצת מאפייני Nix תחביר.מנהל החבילות של Nix לניהול של בכלי המערכת שזמינים בסביבת העבודה שלכם. היא דומה למערכת הפעלה ספציפית מנהלי חבילות כמו APT (
apt
ו-apt-get
), Homebrew (brew
) ו-dpkg
מכיוון שסביבות Nix ניתנות לשחזור והצהרתיות, בהקשר של IDX, כלומר אפשר לשתף את קובץ התצורה של Nix כחלק מאגר של Git כדי לוודא שלכל מי שעובד על הפרויקט יש אותו דבר של הסביבה.
דוגמה בסיסית
בדוגמה הבאה מוצגת הגדרה בסיסית של הסביבה שמפעילה תצוגה מקדימה:
{ pkgs, ... }: {
# Which nixpkgs channel to use.
channel = "stable-23.11"; # or "unstable"
# Use https://search.nixos.org/packages to find packages
packages = [
pkgs.nodejs_18
];
# Sets environment variables in the workspace
env = {
SOME_ENV_VAR = "hello";
};
# Search for the extensions you want on https://open-vsx.org/ and use "publisher.id"
idx.extensions = [
"angular.ng-template"
];
# Enable previews and customize configuration
idx.previews = {
enable = true;
previews = {
web = {
command = [
"npm"
"run"
"start"
"--"
"--port"
"$PORT"
"--host"
"0.0.0.0"
"--disable-host-check"
];
manager = "web";
};
};
};
}
הוספת כלי מערכת
כדי להוסיף כלי מערכת לסביבת העבודה, כמו מהדרים או תוכנות CLI עבור
שירותי ענן, למצוא את מזהה החבילה הייחודי בחבילה של Nix
במרשם ומוסיפים אותו לקובץ ה-dev.nix
אובייקט packages
, עם הקידומת 'pkgs':
{ pkgs, ... }: {
# Which nixpkgs channel to use.
channel = "stable-23.11"; # or "unstable"
# Use https://search.nixos.org/packages to find packages
packages = [
pkgs.nodejs_18
];
...
}
השיטה הזו שונה מהאופן שבו מתקינים חבילות מערכת בדרך כלל באמצעות
מנהלי חבילות ספציפיים למערכת הפעלה, כמו APT (apt
ו-apt-get
), Homebrew
(brew
) ו-dpkg
. תיאור מדויק של חבילות המערכת
המשמעות היא שקל יותר לשתף ולשכפל סביבות עבודה של IDX.
שימוש בקבצים בינאריים של צמתים מקומיים
בדיוק כמו במחשב המקומי, קבצים בינאריים שקשורים לצומת שמותקן באופן מקומי
ניתן להריץ חבילות (כלומר חבילות שהוגדרו ב-package.json
)
חלונית הטרמינל על ידי הפעלה שלה באמצעות npx
הפקודה.
לנוחיותכם, אם אתם נמצאים בספרייה עם node_modules
תיקייה (כמו תיקיית השורש של פרויקט אינטרנט), קבצים בינאריים שמותקנים באופן מקומי
אפשר להפעיל אותו ישירות, בלי הקידומת npx
.
הוספת gcloud
רכיבים
הגדרת ברירת מחדל של ה-CLI gcloud
ל-Google
Cloud זמין לכל IDX
בסביבות עבודה.
אם יש לך צורך ברכיבים נוספים, אפשר להוסיף אותם לקובץ dev.nix
כמו
כך:
{ pkgs }: {
packages = [
...
(pkgs.google-cloud-sdk.withExtraComponents [
pkgs.google-cloud-sdk.components.cloud-datastore-emulator
])
...
];
}
הוספה של תוספי IDE
אפשר להתקין תוספים ב-IDX באמצעות במרשם התוספים של OpenVSX בשתי דרכים:
שימוש בחלונית תוספים ב-IDX כדי לגלות ולהתקין תוספים. הגישה הזו מתאימה במיוחד לתוספים ספציפיים למשתמש, כמו:
- ערכות צבעים בהתאמה אישית
על ידי הוספת סיומות לקובץ
dev.nix
שלך. התוספים האלה מותקנות באופן אוטומטי כשמשתפים את ההגדרות של סביבת העבודה. הזה היא המתאימה ביותר לתוספים ספציפיים לפרויקט, כמו:- תוספים לשפת תכנות, כולל כלי לניפוי באגים לפי שפה
- התוספים הרשמיים לשירותי הענן שמשמשים את הפרויקט שלך
- כלים לעיצוב קוד
בשיטה השנייה אפשר לכלול סיומות IDE בקובץ dev.nix
על ידי איתור מזהה התוסף המוגדר במלואו (בטופס <publisher>.<id>
) והוספתו אל idx.extensions
ככה:
{ pkgs, ... }: {
...
# Search for the extensions you want on https://open-vsx.org/ and use the format
# "<publisher>.<id>"
idx.extensions = [
"angular.ng-template"
];
...
}
הוספת שירותים משותפים
IDX מציעה גם תהליך הגדרה והגדרה פשוטים יותר לשירותים נפוצים, שיכול להיות שיידרשו במהלך הפיתוח, כולל:
- קונטיינרים
- Docker (
services.docker.*
)
- Docker (
- הודעות
- אמולטור Pub/Sub (
services.pubsub.*
)
- אמולטור Pub/Sub (
- מסדי נתונים
- MySQL (
services.mysql.*
) - Postgres (
services.postgres.*
) - Redis (
services.redis.*
) - Spanner (
services.spanner.*
)
- MySQL (
לפרטים על הפעלת השירותים האלה בסביבת העבודה שלך, אפשר לעיין בservices.*
חלקים מההפניה dev.nix
.
התאמה אישית של תצוגות מקדימות
לפרטים על התאמה אישית של התצוגות המקדימות של האפליקציה, עיינו במסמכי העזרה של תצוגות מקדימות.
הגדרת הסמל של סביבת העבודה
כדי לבחור סמל מותאם אישית לסביבת העבודה, צריך למקם קובץ PNG בשם
icon.png
ליד הקובץ dev.nix
, בתוך הספרייה .idx
. IDX
אחר כך נשתמש בסמל הזה כדי לייצג את סביבת העבודה במרכז הבקרה.
מאחר שניתן לבדוק את הקובץ הזה בבקרת המקור (כמו Git), דרך טובה לעזור לכל מי שעובד על הפרויקט שלכם לראות את אותו הסמל עבור פרויקט כשאתם משתמשים ב-IDX. ובגלל שהקובץ יכול להשתנות בהסתעפויות של Git, אפשר אפילו להבחין באופן חזותי בין סביבות עבודה במהלך עבודה על גרסת "בטא" וגם 'ייצור' גרסאות של האפליקציה, למשל.
הפיכת ההתאמות האישיות לתבנית
כדי להפוך את הגדרת הסביבה ל'סביבה התחלתית' לכולם כדי לבנות פרויקטים חדשים, קראו את המסמכים בנושא יצירת תבנית.
הצגת כל אפשרויות ההתאמה האישית
אפשר לקרוא מידע מפורט בחומר העזר בנושא dev.nix
של הסכימה של תצורת הסביבה.