רוב התיעוד בעולם מניח מק או לינוקס, ולכן פקודות שעובדות מצוין בכל מדריך נתקעות על ווינדוס בלי הודעת שגיאה. ה-Skill הזה מכסה את חמש הסיבות שחוזרות: התקנה שמחכה לאישור והמשתמש לא יודע שצריך להקליד תשובה, PATH שנבנה ידנית ונעלם בפקודת רקע, פייתון שמותקן אבל מוסתר על ידי קיצור של חנות מיקרוסופט, FFmpeg שעדיף להתקין בתוך הפרויקט ולא במערכת, וסביבת shell שלא נשמרת בין קריאות. כל אחד מהם נלמד מכישלון אמיתי. זהו Skill ל-Claude: תיקייה עם קובץ SKILL.md, שנטענת אוטומטית כשהמשימה מתאימה לתיאור שבראש הקובץ. בניגוד לפרומפט שמדביקים בכל פעם מחדש, Skill מותקן פעם אחת וממשיך לעבוד לבד.
קוד ואיכות · ווינדוס · Node · npm · PATH · FFmpeg
---
name: windows-node-toolchain
description: "Make Node command line tools actually run on Windows: install prompts that block non technical users, PATH lost inside background commands, Python shadowed by the Microsoft Store stub, and FFmpeg installed per project instead of system wide. Use when about to hand a user a terminal command, when a command hangs or exits with no output, or when a tool reports a dependency as missing that is actually installed."
---
# להריץ כלי Node על ווינדוס בלי לתקוע את המשתמש
כל מה שכאן נלמד מכישלון אמיתי, ולא מתיעוד.
## 1. ההתקנה שואלת שאלה, והמשתמש נתקע
```
Need to install the following packages:
some-tool@1.2.3
Ok to proceed? (y)
```
זה עצר משתמש שלם. הוא לא ידע שצריך להקליד תשובה ו-Enter, והיה בטוח
שהפקודה לא עובדת.
**לעולם לא לתת למשתמש לא טכני פקודת התקנה חשופה.** במקום זה להתקין
מקומית, ולהוסיף סקריפט עם דגל שמדלג על השאלה:
```json
{
"scripts": {
"auth": "npx --yes some-tool@1.2.3 auth login"
}
}
```
ואז המשתמש מריץ שם סקריפט אחד בלבד.
**להריץ בעצמכם פעם אחת ולוודא שאין אף שאלה, לפני שמוסרים.**
## 2. פייתון "לא נמצא" אבל מותקן
```
Python was not found; run without arguments to install from the Microsoft Store
```
זו אינה הודעה שפייתון חסר. זה קיצור הדרך של חנות מיקרוסופט שמצל על
ההתקנה האמיתית ב-PATH.
**לחפש את ההתקנה האמיתית לפני שמכריזים שהיא חסרה**, ואז לקרוא לה בנתיב
מלא. לא לבקש מהמשתמש "לתקן PATH", זה סיפור שלם ולרוב אין בו צורך.
## 3. FFmpeg בתוך הפרויקט, לא במערכת
מדריכים ממליצים על התקנה במערכת, שזה שינוי אצל המשתמש. יש דרך מוכלת:
```bash
npm i -D ffmpeg-static ffprobe-static
npm approve-scripts ffmpeg-static
```
**שלב האישור הוא חובה.** בלעדיו החבילה מותקנת אבל הבינארי לא יורד,
והקובץ פשוט לא קיים.
שתי החבילות נפרדות: אחת אינה מביאה את השנייה, וכלים רבים דורשים את
שתיהן.
## 4. פקודת רקע מאבדת את ה-PATH
הרצה ברקע עם בניית PATH באותה שורה נתנה קובץ פלט ריק, קוד יציאה אפס,
ובגוף הפלט הודעה שהעבודה נכשלה.
**קוד יציאה אפס אינו הצלחה.** תמיד לבדוק שהתוצר עצמו נוצר.
**פקודות שתלויות ב-PATH שנבנה ידנית רצות בחזית.** אם חייבים רקע, לכתוב
את הנתיב המלא לבינארי במקום להסתמך על PATH.
## 5. סביבת ה-shell לא נשמרת בין קריאות
משתני סביבה לא עוברים מקריאה לקריאה. מעבר בין תיקיות כן נשמר, הגדרת
משתנה לא.
**כל קריאה שצריכה PATH מותאם חייבת לכלול את ההגדרה באותה שורה.**
## 6. שים לב לצורת הנתיב
נתיב בסגנון ווינדוס שמתחיל באות כונן ונקודתיים נקרא ב-shell כמפריד, ולכן
הוספה שלו ל-PATH פשוט לא עובדת. בסביבות תאימות משתמשים בצורה עם קו נטוי
בתחילת הנתיב.
**לאמת עם חיפוש הפקודה אחרי ההגדרה**, ולא להניח שהיא נמצאה.
## 7. עברית בשורת הפקודה
ה-shell בולע סימני דולר, גרשיים ובקסלשים. פקודה חד שורתית עם עברית
תיכשל, או גרוע יותר, תצליח על מחרוזת ריקה ותיראה כמו הצלחה.
**לכתוב סקריפט לקובץ ולהריץ אותו.** תמיד.
## 8. לפני שמוסרים פקודה למשתמש לא טכני
- להריץ אותה בעצמכם ולוודא שאין שאלה אינטראקטיבית
- לכתוב בדיוק מה הוא אמור לראות על המסך אחריה
- לכתוב מה לעשות אם מופיע משהו אחר
- להעדיף שם סקריפט קצר על פקודה ארוכה עם דגלים
כליקס לא הצליח להיטען
נסו קודם לרענן את העמוד. אם בדיוק עלתה גרסה חדשה, רענון פותר את זה מיד.
אם הרענון לא עזר, ייתכן שהדפדפן ישן מדי: כליקס מריץ את הכלים על המכשיר שלכם ולא בשרת, ולכן הוא זקוק לדפדפן מ-2022 ומעלה. מה עושים: לעדכן את Chrome או את Firefox, ולפתוח שוב את klixtools.com.