היום למדתי: למה VS Code מתעקש לשאול כל פעם אם אני סומך על הפרויקט הזה?
אין דיאלוג שיותר מעייף אותי מ"האם אתה סומך על הפרויקט הזה" שמופיע כל פעם לפני שאני פותח פרויקט ב VS Code. מצד אחד ברור שאסור לפתוח לזרים אבל מה בכלל צריך לבדוק בפרויקט לפני שפותחים אותו ב VS Code, ומה זה אומר שאני סומך על הפרויקט?
אז אני עדיין לא יודע לענות על כל השאלות אבל בפוסט היום אני רוצה להראות טכניקה אחת של פרויקטים זדוניים להשתלט לנו על המחשבים ואפילו לבנות פרויקט זדוני לדוגמה איתה, והטכניקה שאני מדבר עליה היא הקובץ tasks.json.
1. יצירת פרויקט זדוני
הקובץ tasks.json נועד כדי לאפשר למפתחים להריץ דברים בצורה קלה מתוך העורך, למשל להריץ קומפילציה, משיכת קוד משרת מרוחק או בדיקה אוטומטית. בואו ננסה את זה, אני יוצר תיקייה חדשה ופותח אותה ב VS Code ואז יוצר תיקיה חדשה בשם .vscode ובתוכה קובץ חדש בשם tasks.json. בתוך הקובץ אני כותב את הקוד:
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "Ynon Run Tests",
"type": "shell",
"command": "echo Run Tests"
}
]
}
שומר ולוחץ Ctrl+Shift+P בשביל להכנס לתפריט ואז בוחר Tasks: Run Task. יופיע לי דיאלוג לבחירת משימה מהירה ואני יכול לבחור את המשימה שלי משם ולראות את הסקריפט שלי רץ. עד פה הכל קל.
מה שהופך את הפרויקט לזדוני הוא מפתח runOptions שם ניתן להגדיר מתי המשימה תרוץ אוטומטית. בואו ננסה את זה עם עוד כמה תוספות ונכתוב בקובץ את התוכן הבא:
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "Ynon Run Tests",
"type": "shell",
"command": "date >> tests.txt",
"problemMatcher": [],
"isBackground": true,
"presentation": {
"reveal": "never",
},
"runOptions": {
"runOn": "folderOpen"
}
}
]
}
הגדרת problemMatcher ריק מבטלת את הדיאלוג ששאל איך להציג שגיאות, הגדרת isBackground מאפשרת למשימה לרוץ ברקע, הגדרת reveal: never מונעת את הצגת המסוף עם פלט המשימה ו runOn: folderOpen אומרת שהמשימה תרוץ כל פעם שפותחים קובץ מתוך התיקייה.
עכשיו אפשר לצאת מ VS Code ולהכנס מחדש ולראות שהפקודה התבצעה, נוצר קובץ חדש בשם tests.txt ובו התאריך וזמן ההרצה. הפקודה תמשיך לרוץ שוב ושוב ברקע כשנפתח עוד קבצים בפרויקט.
2. מה עושים
סירוב לתת אמון בפרויקטים יכניס אתכם למצב מוגבל בעבודה. במצב מוגבל לא ניתן להריץ משימות מתוך tasks, לא ניתן להכנס למצב Debugging ויש יכולות ותוספים של VS Code שיפעלו בצורה מוגבלת.
כמה דוגמאות לדברים שלא עובדים במצב המוגבל:
הצגת תמונות במסוף
הצגת היסטוריה במסוף
תיקון מהיר לפקודות מסוף
שימוש ב Skills בעבודה עם AI
שימוש בקבצי Agents.md בעבודה עם AI
סך הכל אפשר בהחלט לערוך קבצים במצב מוגבל וגם לעבוד על פרויקט אבל כשרוצים לעבוד בצורה רצינית ובמיוחד לשלב עבודה עם סוכני קידוד או אינטגרציה עם המסוף דברים מתחילים להסתבך. אפשר לראות בהגדרות את הרשימה המלאה.
מצד שני עבודה במצב "אמון גבוה" פותחת דלת לקוד זדוני לרוץ ללא השגחה על המכונה.
איך אתם רגילים לעבוד? אפשר להגיב במייל או בטלגרם.