opencirclesolutions / dynamo

Dynamo - Web Application Accelerator Framework
Apache License 2.0
10 stars 8 forks source link

Angular/PrimeNG Front End should be packaged #231

Open pdeenen opened 3 weeks ago

pdeenen commented 3 weeks ago

Currently the Dynamo Front End is not packaged and prepared for re-use.

wittekip commented 2 weeks ago

Ik heb dit onderzocht en het is een enorme uitdaging om dit goed aan de gang te krijgen. Ik denk eerlijk gezegd dat het niet gaat werken.

Het voornaamste probleem is dat we een aantal plekken hebben waarbij er cyclische afhankelijkheden optreden tussen de componenten (bijv. een generic-form bevate een pop-up die op zijn beurt weer een pop-up bevat). Dit is normaal gesproken in een applicatie geen probleem, maar het is niet toegestaan in een library. Je kunt wel opgeven dat de library op een andere manier gecompileerd moet worden ("full" in plaats van de default "partial"), in dat geval compileert de library in principe wel maar je kunt hem daarna niet meer distribueren via NPM. Dat maakt het al bijna onbruikbaar want je kunt de dependencies dan niet meer binnenhalen via NPM in bijvoorbeeld een buildstraat.

Je kunt eventueel wel de code via NPM lokaal installeren "npm install "file://../commons-dynamo//dist//dynamo-commons", je krijgt dan letterlijk een verwijzing naar een locatie op je bestandsysteem in de package.json file. Maar als je in dat geval de applicatie opstart klaagt hij ook (alsnog) over cyclische dependencies. De applicatie start wel op, maar toont vervolgens een blanco scherm.

Ik denk eerlijk gezegd dat het niet te doen is om Dynamo (met de huidige opzet) op een nette manier als een library te includen, ik denk dat we toch eens moeten kijken naar andere opties - bijv. wel een aparte repo met de code (of een dynamo-angular subproject in de bestaande distributie) en dan de optie om dan de code maar met de hand te kopieren of zo?