Plantillas
En proyectos con una arquitectura establecida, los desarrolladores pueden querer arrancar nuevos componentes o características que sean consistentes con el proyecto. Con tuist scaffold puedes generar archivos a partir de una plantilla. Puedes definir tus propias plantillas o utilizar las que se venden con Tuist. Estos son algunos escenarios en los que el andamiaje puede ser útil:
- Cree una nueva característica que siga una arquitectura determinada:
tuist scaffold viper --name MyFeature. - Crear nuevos proyectos:
tuist scaffold feature-project --name Home
SIN OPINIÓN
Tuist no opina sobre el contenido de tus plantillas, ni para qué las utilizas. Sólo se requiere que estén en un directorio específico.
Definir una plantilla
Para definir plantillas, puede ejecutar
`tuist edit` y luego crear un directorio llamadoname_of_templatebajo Tuist/Templates que representa su plantilla. Las plantillas necesitan un archivo de manifiesto, name_of_template.swift que describe la plantilla. Así que si estás creando una plantilla llamada framework, deberías crear un nuevo directorio framework en Tuist/Templates con un archivo de manifiesto llamado framework.swift que podría tener este aspecto:
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"
),
]
)Utilizar una plantilla
Una vez definida la plantilla, podemos utilizarla desde el comando scaffold:
bash
tuist scaffold name_of_template --name Name --platform macosINFO
Dado que la plataforma es un argumento opcional, también podemos llamar al comando sin el argumento --platform macos.
Si .string y .files no proporcionan suficiente flexibilidad, puede aprovechar el lenguaje de plantillas Stencil mediante el caso .file. Además, también puede utilizar filtros adicionales definidos aquí.
Utilizando la interpolación de cadenas, \(nombreAtributo) anterior se resolvería en . Si desea utilizar filtros Stencil en la definición de la plantilla, puede utilizar esa interpolación manualmente y añadir los filtros que desee. Por ejemplo, puede utilizar { { nombre | minúsculas } } en lugar de \(nombreAtributo) para obtener el valor en minúsculas del atributo nombre.
También puede utilizar .directory, que ofrece la posibilidad de copiar carpetas enteras en una ruta determinada.
DESCRIPCIÓN DEL PROYECTO AYUDANTES
Las plantillas admiten el uso de
ayudantes de descripción de proyectos para reutilizar código entreplantillas.
