Skip to main content

Preguntes freqüents

Què és Harmonix?​

Harmonix és un framework per compondre una aplicació d'una sola pàgina a partir de plugins que es desenvolupen i es despleguen de manera independent. Un shell defineix regions, i cada plugin hi registra Web Components com a vistes.

A qui s'adreça Harmonix?​

A aplicacions construïdes per diversos equips, o per empreses diferents, on cada equip desenvolupa les seves funcionalitats amb la seva tecnologia i el seu cicle de publicació.

Quins frameworks puc fer servir?​

React, Angular, Lit o JavaScript/TypeScript sense framework: qualsevol cosa que generi un Web Component. El creador de plugins té plantilles per a React, Lit i Angular.

Què és el shell?​

L'aplicació principal. Pinta la disposició de la pàgina, defineix les regions, construeix l'API que rep cada plugin i carrega els plugins. També proporciona els serveis comuns, com l'autenticació o les traduccions. Consulta Construir un shell.

Què és un plugin?​

Un mòdul ES que exporta initialize(api) i dispose(api). Aporta una funcionalitat de l'aplicació. Es pot afegir, actualitzar o eliminar sense tornar a desplegar el shell. Consulta Cicle de vida d'un plugin.

Què són les regions?​

Àrees del shell on els plugins injecten vistes. Algunes mostren una vista alhora; d'altres, diverses. Consulta Regions i vistes.

Què ofereix l'API d'Harmonix?​

Cada plugin rep una API amb:

  • regionManager, per registrar i activar vistes a les regions.
  • pluginInfo, amb l'id del plugin.
  • createLocaleManager, per traduir els missatges del plugin.

Cada shell l'amplia amb els seus propis serveis, com un broker, un client HTTP o notificacions. Consulta la Referència de l'API.

Com es gestionen les traduccions?​

Cada plugin passa els seus missatges a api.createLocaleManager(messages) i obté un traductor. Harmonix només defineix la interfície; el shell la implementa i decideix l'idioma actual.

Com es comuniquen els plugins?​

A través del broker del shell. Un plugin pot publicar esdeveniments als quals se subscriuen tants plugins com calgui, o enviar peticions que respon un sol plugin. Els plugins no s'importen mai entre ells.

Què passa si un plugin no es pot carregar?​

L'error es registra a la consola i el plugin se salta. Els altres plugins es carreguen i s'inicien amb normalitat.

Necessito un Plugin Store? Com publico un plugin?​

Un shell pot carregar plugins des de qualsevol URL o des de mòduls locals, així que un Plugin Store no és obligatori. En producció, les aplicacions normalment en tenen un per gestionar els plugins i les versions. Per pujar un plugin, fes servir harmonix publish de @uxland/harmonix-cli. Consulta Construir i publicar i Gestió de plugins amb un Plugin Store.

Com desenvolupo un plugin sense l'aplicació final?​

Fes servir el creador de plugins. Crea un projecte que executa el teu plugin dins del shell de demostració, un shell petit amb una capçalera, un menú lateral i una regió principal.

Com construeixo el meu propi shell?​

Fes servir @uxland/harmonix i @uxland/regions per crear les regions, defineix la teva API i carrega els plugins amb bootstrapPlugins. Consulta Construir un shell.

Dos plugins poden fer servir el mateix id de vista?​

Al shell de demostració, sí: desa cada vista com a pluginId::viewId. En altres shells, depèn de si el shell separa els ids de les vistes per plugin. Si no ho fa, posa l'id del plugin com a prefix dels teus ids.

Com s'aïllen els estils?​

Cada vista es pinta en el seu propi Shadow DOM, de manera que els seus estils no se n'escapen i els estils del shell no hi entren. Les plantilles del creador de plugins ja ho fan. Harmonix no proporciona un aspecte comú: això correspon al shell i al seu sistema de disseny, per exemple a través de propietats personalitzades de CSS.

Com comparteixen els plugins biblioteques com React?​

Els plugins no empaqueten el framework. Es construeixen amb el framework com a extern, i l'aplicació en proporciona una sola còpia a tots els plugins. Desenvolupa amb la mateixa versió major que fa servir l'aplicació. Consulta Construir i publicar.

Com es compara Harmonix amb Module Federation, single-spa o els iframes?​

  • Els iframes aïllen completament, però cada peça necessita la seva pròpia URL i el seu servidor web, i la comunicació i els estils entre marcs són complicats.
  • Webpack Module Federation i single-spa són eines generals per carregar o muntar aplicacions construïdes per separat, sovint una per ruta.
  • Harmonix compon una sola pantalla a partir de molts plugins per regió: un plugin pot col·locar vistes en diverses regions, i els plugins es comuniquen a través de l'API i el broker del shell.

Harmonix és adequat per a aplicacions petites?​

Està pensat per a aplicacions grans amb diversos equips. També pot tenir sentit en una aplicació més petita que es preveu que creixi o que hi participin més equips.

Harmonix admet CI/CD?​

Sí. Cada plugin es construeix i es publica pel seu compte, així que cada equip pot tenir el seu propi pipeline i publicar de manera independent.

Quins són els casos d'ús més habituals?​

  • Aplicacions de tipus estació de treball construïdes per equips independents.
  • Plataformes SaaS on els clients activen funcionalitats diferents.
  • Integració de productes d'empreses diferents en una mateixa interfície.

On puc trobar més recursos?​

Comença per Crear un plugin.