القوالب
في المشاريع ذات البنية الراسخة، قد يرغب المطورون في تمهيد مكونات أو ميزات جديدة تتسق مع المشروع. مع سقالة تويست يمكنك إنشاء ملفات من قالب. يمكنك تحديد القوالب الخاصة بك أو استخدام القوالب التي يتم بيعها مع Tuist. هذه بعض السيناريوهات التي قد تكون فيها السقالات مفيدة:
- قم بإنشاء ميزة جديدة تتبع بنية معينة:
tuist سقالة الأفعى - الاسم MyFeature. - إنشاء مشاريع جديدة:
تويست سقالة ميزة المشروع - اسم المشروع الرئيسي
NON-OPINIONATED
تويست ليس له رأي في محتوى القوالب الخاصة بك، وما تستخدمها من أجله. فهي مطلوبة فقط لتكون في دليل محدد.
تعريف القالب
ولتعريف القوالب، يمكنك تشغيل tuist تحرير ثم إنشاء دليل يسمى name_of_of_template ضمن Tuist/Templates الذي يمثل القالب الخاص بك. تحتاج القوالب إلى ملف بيان، name_of_of_template.swift. الذي يصف القالب. لذلك إذا كنت تقوم بإنشاء قالب يسمى إطار العمل ، يجب عليك إنشاء دليل جديد إطار العمل في Tuist/Templates مع ملف بيان يسمى framework.swift والذي يمكن أن يبدو هكذا:
swift
import ProjectDescription
let nameAttribute: Template.Attribute = .required("name")
let template = Template(
description: "Custom template",
attributes: [
nameAttribute,
.optional("platform", default: "ios"),
],
items: [
.string(
path: "Project.swift",
contents: "My template contents of name \(nameAttribute)"
),
.file(
path: "generated/Up.swift",
templatePath: "generate.stencil"
),
.directory(
path: "destinationFolder",
sourcePath: "sourceFolder"
),
]
)استخدام قالب
بعد تحديد القالب، يمكننا استخدامه من الأمر سقالة:
bash
tuist scaffold name_of_template --name Name --platform macosINFO
نظرًا لأن النظام الأساسي هو وسيطة اختيارية، يمكننا أيضًا استدعاء الأمر بدون الوسيطة -- النظام الأساسي macos.
إذا لم يوفر لك .string و .files مرونة كافية، يمكنك الاستفادة من لغة النمذجة [Stencil] (https://stencil.fuller.li/en/latest/) عبر حالة .file. بالإضافة إلى ذلك، يمكنك أيضًا استخدام مرشحات إضافية محددة هنا.
باستخدام استيفاء السلسلة، \(nameAttribute) أعلاه سيحل إلى }. إذا كنت ترغب في استخدام مرشحات الاستنسل في تعريف القالب، يمكنك استخدام هذا الاستيفاء يدويًا وإضافة أي مرشحات تريدها. على سبيل المثال، يمكنك استخدام { { الاسم | اسم | أحرف صغيرة } } بدلًا من \(nameAttribute) للحصول على القيمة ذات الأحرف الصغيرة لسمة الاسم.
يمكنك أيضًا استخدام .directory الذي يتيح إمكانية نسخ مجلدات كاملة إلى مسار معين.
PROJECT DESCRIPTION HELPERS
تدعم القوالب استخدام مساعدي وصف المشروع لإعادة استخدام الشيفرة عبر القوالب.
