CLI para crear múltiples componentes en lote con soporte para plantillas por proyecto y stubs incorporados.
Proyecto local:
npm i -D create-components-cli
Global (opcional):
npm i -g create-components-cli
Interactivo:
npm create-components
También puedes ejecutar el binario directo si está instalado globalmente:
create-components
El generador busca plantillas (stubs) en este orden:
- Stubs del proyecto:
./stubs/<ext>/(por ejemplo./stubs/vue/,./stubs/astro/) - Stubs incorporados del paquete:
stubs/<ext>/dentro del módulo
Donde <ext> es astro, tsx, vue, js, ts.
Cada stub es un archivo nombrado como NOMBRE<ext> por ejemplo:
stubs/astro/basic.astrostubs/astro/with-slot.astrostubs/tsx/with-props.tsxstubs/vue/setup.vue
El CLI detecta automáticamente las plantillas disponibles para la extensión seleccionada y muestra solo esas opciones.
Dentro de la plantilla, puedes usar el texto Component como placeholder. El generador lo reemplaza por el nombre real del componente.
Ejemplo Vue (stubs/vue/basic.vue):
<template>
<div class="component">
Component
</div>
</template>
<script>
export default {
name: 'Component'
}
</script>-
Crea la carpeta de stubs en tu proyecto:
stubs/astro/stubs/tsx/stubs/vue/stubs/js/stubs/ts/
-
Añade tus archivos de plantilla. Ejemplos:
stubs/astro/card.astrostubs/vue/panel.vuestubs/tsx/with-state.tsx
-
Asegúrate de incluir el placeholder
Componentpara que se reemplace por el nombre.
Al ejecutar el CLI, verás tus plantillas personalizadas en la lista. Si una plantilla no existe para la extensión elegida, se usa basic si está disponible; si no hay stubs, se genera un contenido por defecto razonable.
import { createComponents, getTemplatesForExt } from 'create-components-cli';
// Crea componentes a partir de una plantilla
await createComponents(['Button', 'Card'], '.vue', 'src/components', 'basic');
// Obtiene plantillas disponibles para una extensión
const vueTemplates = getTemplatesForExt('.vue');