Skip to content

الناتج المولد

تصدّر عدة حزم pantoken ملفات أثناء وقت البناء — ورقة أنماط، theme.json، وحدة رموز مضمّنة. للحفاظ على نظافة المستودع وصدق المخرجات، تتبع كل حزمة قاعدة واحدة ومهمة مساحة العمل تتحقق من الكل.

قاعدة generated/

كل حزمة تنتج أثر بناء تكتبه إلى دليل generated/ خاص بالحزمة، ولا يوجد شيء آخر هناك. قاعدة واحدة في .gitignore تغطيها جميعًا:

txt
**/generated/

لذلك لا يتم الالتزام بأي ملف مولَّد — يعيد البناء إنتاجه. نوعان من المخرجات تهبط هناك:

  • الموارد الثابتة القابلة للشحن — ملفات يستوردها المستهلك، مثل @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، لذا يتم التقاط الانحراف في البوابة القياسية.