Importaciones Entre Módulos de Magento
En MageObsidian Components, las importaciones de archivos JavaScript y componentes Vue siguen convenciones flexibles que aplican específicamente a los archivos dentro de las carpetas js y components. Este enfoque asegura compatibilidad, modularidad y una integración fluida con los temas.
Métodos de Importación Soportados
- 
Módulos de NPM 
 Los paquetes de NPM se pueden importar de manera normal sin necesidad de configuraciones especiales:
- 
Importaciones Relativas y Absolutas 
 Los archivos en las carpetasjsycomponentspueden importarse usando rutas relativas o absolutas:
- 
Importaciones Basadas en Módulos 
 La característica más poderosa es la capacidad de importar archivos desde otros módulos de Magento utilizando la siguiente notación:
- 
Si no se especifica el directorio raíz (por ejemplo, componentsojs), se usarácomponentspor defecto:
- 
Importaciones Basadas en Temas 
 También es posible importar archivos desde el tema utilizando una notación similar:
Esto sigue las mismas reglas de resolución que las importaciones basadas en módulos, permitiendo que los temas sobrescriban componentes o scripts sin complicaciones.
Aplicación en js y components
Este sistema de importación está diseñado exclusivamente para los archivos ubicados en las carpetas js y components:
- Archivos JavaScript: Rastreados en view/frontend/web/js.
- Componentes Vue: Rastreados en view/frontend/web/components.
Por ejemplo:
- Vendor_ModuleF::js/main.js referencia un archivo en la carpeta js.
- Vendor_ModuleA::components/demo.vue referencia un archivo en la carpeta components.
Cualquier importación fuera de estas carpetas debe realizarse utilizando rutas relativas o absolutas estándar.
Por Qué Esto Es Importante
Resolviendo Componentes Sobrescritos
Cuando los archivos son sobrescritos en los temas, las importaciones relativas o absolutas no reflejan estos cambios, lo que puede llevar a comportamientos inesperados.
Por ejemplo:
bar.vue es sobrescrito en el tema, esta ruta relativa seguirá apuntando al componente original del módulo, ignorando la sobrescritura del tema.
En cambio:
Vendor_Module::, Vite resuelve automáticamente el archivo apropiado, respetando la jerarquía de sobrescritura (módulo -> tema). Esto garantiza que siempre se cargue el recurso correcto.
Mejores Prácticas para Importaciones
- Usa Siempre Importaciones Basadas en Módulos
 Utiliza la notaciónVendor_Module::para importar recursos desde módulos de Magento. Esto asegura:
- Resolución adecuada de componentes o scripts sobrescritos en los temas.
- Un código modular y fácil de mantener.
Ejemplo:
- 
Evita Rutas Relativas o Absolutas 
 A menos que sea absolutamente necesario, no utilices rutas relativas o absolutas para recursos enjsocomponents. Estas rutas omiten el mecanismo de resolución de Vite, lo que puede provocar comportamientos inesperados si los recursos son sobrescritos.
- 
Usa Importaciones Desde el Tema para Sobrescrituras 
 Si necesitas utilizar explícitamente un recurso desde el tema, utiliza la notaciónTheme:::
- 
Consistencia en la Notación de Importaciones 
 Mantén un uso consistente de las notacionesVendor_Module::yTheme::en todo tu proyecto para evitar confusiones y garantizar compatibilidad.
Ejemplos
Importando Desde un Módulo
Importando Desde el Tema
Importación Incorrecta
Beneficios de las Importaciones Basadas en Módulos y Temas
- 
Sobrescrituras de Temas Sin Problemas 
 Asegura que se cargue el componente o script correcto, respetando la jerarquía de sobrescrituras.
- 
Modularidad 
 Fomenta un enfoque modular, haciendo que el código sea más mantenible y escalable.
- 
Flexibilidad 
 Soporta personalizaciones sin romper la estructura original de los módulos.
- 
Prevención de Errores 
 Evita comportamientos inesperados causados por rutas relativas o absolutas codificadas.
Notas Clave
- Este sistema aplica únicamente a los archivos en las carpetas jsycomponents.
- Usa la notación Vendor_Module::para todas las importaciones dentro de los módulos de Magento.
- Usa la notación Theme::para recursos específicamente desde los temas.
- Evita rutas relativas o absolutas a menos que sea necesario.
- Vite se encarga de resolver los componentes o scripts sobrescritos en los temas de forma automática.
Siguiendo estas recomendaciones, MageObsidian Components proporciona un flujo de trabajo limpio, flexible y confiable para gestionar JavaScript y componentes Vue entre módulos y temas.