Generadores¶
MageObsidian incluye generadores de bin/magento que crean módulos, temas y componentes Vue ya cableados para el frontend —de modo que el resolver los detecta sin configuración manual. Viven en el paquete mage-obsidian/module-modern-frontend-cli.
| Comando | Qué crea |
|---|---|
mage-obsidian:generate:module |
Un módulo nuevo en app/code, adherido al frontend. |
mage-obsidian:generate:theme |
Un tema de frontend nuevo en app/design, precableado. |
mage-obsidian:generate:component |
Un componente Vue single-file dentro de un módulo o tema. |
Generar un Módulo¶
El nombre debe tener la forma Vendor_Module. Crea, bajo app/code/Acme/Catalog/:
registration.phpetc/module.xml(secuenciado después del core)etc/mage_obsidian_compatibility.xml(el opt-in del frontend)view/frontend/web/module.config.ts
Un módulo es invisible para el stack de frontend hasta que entrega el archivo de compatibilidad, por eso se genera por defecto. Sigue los próximos pasos impresos para activarlo:
| Opción | Descripción |
|---|---|
--force, -f |
Sobrescribe los archivos si ya existen. |
Generar un Tema¶
El código debe tener la forma Vendor/theme. Crea, bajo app/design/frontend/Acme/aurora/:
registration.phptheme.xml(con el<parent>si se pasa--parent)etc/mage_obsidian_compatibility.xmlweb/theme.config.jsweb/css/theme.source.css(una fuente de Tailwind 4).gitignore
| Opción | Descripción |
|---|---|
--parent |
Tema padre, p. ej. Magento/blank. |
--title |
TÃtulo legible del tema (por defecto, el código). |
--force, -f |
Sobrescribe archivos existentes. |
Luego actÃvalo en Content → Design → Configuration (o vÃa config) y regenera el contrato:
Generar un Componente¶
Apunta a exactamente uno de módulo o tema:
El destino debe ser un módulo/tema habilitado y compatible con el frontend; de lo contrario el comando te indica que entregues el archivo de compatibilidad y ejecutes mage-obsidian:frontend:config --generate.
El componente se escribe siguiendo la convención del framework, asà que el resolver lo encuentra sin registro:
- módulo →
view/frontend/web/components/<name>.vue - tema →
web/components/<name>.vue
Funcionan las rutas anidadas (elements/Button), y un components/ inicial o un .vue final en el nombre se normalizan. El comando imprime entonces cómo renderizarlo:
(Para un destino de tema la referencia usa el namespace Theme::, p. ej. Theme::ProductCard.)
| Opción | Descripción |
|---|---|
--module |
Módulo destino (Vendor_Module). |
--theme |
Tema destino (Vendor/theme). |
--wire |
Genera además un stub .phtml que renderiza el componente. |
--force, -f |
Sobrescribe archivos existentes. |
Cablear un stub phtml¶
Con --wire, el comando también escribe un .phtml que renderiza el nuevo componente e imprime un snippet de bloque de layout para colocarlo en un handle:
- módulo →
view/frontend/templates/<name>.phtml - tema →
Magento_Theme/templates/<name>.phtml
Ejemplo de Punta a Punta¶
El componente se renderiza como una isla Vue de hidratación perezosa. Edita el .vue generado y el watcher de desarrollo mantiene sincronizadas la resolución y el autocompletado del editor.