Skip to content

פלט שנוצר

כמה חבילות של pantoken משיגות קבצים בזמן הבנייה — גיליון סגנונות, theme.json, מודול טוקנים מוטמע. כדי לשמור על המאגר נקי ועל הפלטים אמיתיים, כל חבילה עוקבת אחרי קונבנצייה אחת ומשימת workspace מאמתת את כולם.

הקונבנצייה של generated/

כל חבילה שמייצרת ארטיפקט בנייה כותבת אותו לתיקיית generated/ ייעודית לחבילה, ולא שוהה שם דבר אחר. כלל אחד ב-.gitignore מכסה את כולם:

txt
**/generated/

כך שאף קובץ שנוצר אינו מועבר ל-repo — בנייה משחזרת אותו. שני סוגי פלט נחתים שם:

  • סטטיים מסחריים — קבצים שצרכן מייבא, כמו @pantoken/css's style.css או @pantoken/scss's tokens.scss. מפת exports של החבילה שומרת את המפתח הציבורי ("./style.css") אך מצביעה עליו כ-generated/, כך שממשק הצרכן לא משתנה.
  • מתווכים של הבנייה — קבצים שקטלוג המקור של החבילה מייבא ומהם הוא מרכיב את dist, כמו ה-JSON המוכר מה-@pantoken/tokens. אלה לא מפורסמים כעצמם; הם מקומפלים כחלק מהבנייה.

אימות הפלט

@pantoken/validate-generated (כלי פרטי) רץ לאחר הבנייה ובודק שלושה דברים:

  1. שכל חבילת המחולל כתבה בפועל תיקיית generated/ לא ריקה,
  2. כלי השורת פקודה pantoken מפיק לפחות קובץ אחד עבור כל יעד נתמך, ו-
  3. אף גיליון סגנונות שנוצר לא סוטה מ-IR של הטוקנים — danglingReferences לגיליונות עצמאיים, ו-unknownReferences לגשרים שמצביעים רק על טוקנים המוגדרים במקום אחר.

פקודות

sh
# Rebuild every package, regenerating all generated/ output.
pnpm run generate

# Rebuild, then run the validator.
pnpm run validate:generated

המאמת גם מחובר ל-pnpm run ready, כך שסחיפה נתפסת בשער הסטנדרטי.