example-schematics-dc
v0.0.64
Published
A blank schematics
Downloads
3,609
Readme
Crear proyecto schematics para los templates
- Install schematics-cli
npm install -g @angular-devkit/schematics-cli
- Crear nueva carpeta e inicializar el proyecto de Schematics:
schematics blank --name=my-schematic
- El el archivo
src/my-schematic/index.ts
, agregar el código para la creación de la plantilla
import { Rule, SchematicContext, Tree, apply, url, template, move, chain, mergeWith } from '@angular-devkit/schematics';
import { strings } from '@angular-devkit/core';
export function mySchematic(_options: any): Rule {
return (tree: Tree, _context: SchematicContext) => {
const templateSource = apply(url('./files'), [
template({
..._options,
...strings,
}),
move('./'),
]);
return chain([mergeWith(templateSource)]);
};
}
- Agregar los schematics en el archivo
src/collection.json
{
"schematics": {
"my-schematic": {
"description": "A blank schematic",
"factory": "./my-schematic/index#mySchematic"
}
}
}
Tener en cuenta que index#mySchematic
hace referencia al nombre de la función que está creado en el index.ts
Crear una carpeta
files
dentro desrc/my-schematic/
para almacenar los archivos que schematic usará como plantilla.Crear uno o varios archivos plantilla
__name__.module.ts.template
import { Module } from '@nestjs/common';
@Module({})
export class <%= classify(name) %>Module {}
Este archivo usa interpolación (<%= %>) para insertar valores de las opciones del schematic (en este caso, el nombre del módulo).
- Actualizar
package.json
, agregar el script del schematic que se cró
"scripts": {
"my-schematic": "schematics .:my-schematic"
}
- Compilar el proyecto
npm run build
- Publicar
npm publish
- Utilizar en otro proyecto, se llama
schematics:name-in-package:schema --variable=value
schematics example-schematics-dc:crud --name=brand
#Opcional
Probar Schematic, el valor del atributo name será el nombre del modulo creado.
npm run crud -- --table=product --path=src/ --dry-run=false