Nx Workspace

Insights

NX workspace: Opzetten met Angular

🛠 Frontend development

Nx workspace is een tool om monorepos te builden van elke grootte voor frameworks zoals Angular, React als backend technologieën zoals Next en Express. De belangrijkste doelen van NX zijn het versnellen van de workflow met minimale inspanning en een goede developer experience creeëren. Om deze doelen goed te illustreren kijken we dus best ook even wat de voordelen zijn van het werken met monorepos.

Voordelen van Monorepo

Als we kijken naar het belangrijkste voordeel van deze aanpak is dat het de ontwikkeling vereenvoudigt door alle code, configuraties en afhankelijkheden in één repository te centraliseren. Maar daarbuiten zijn er nog heel wat. 

  • Gedeelde code  

    • Zorgt ervoor dat er minder herhalende code zich in het project bevindt 

  • Atomic changes  

    • Aanpassingen in library en applicatie die component gebruikt kunnen direct samen aangepast worden. 

  • Developer mobility 

    • Consistente manier van bouwen en testen schrijven  

  • 1 set van dependencies  

    • Gebruik 1 versie van third-party dependencies, zorgt voor minder inconsistencies  

    • Applicaties waar minder aandacht krijgen blijven ook up to date  

Nieuwe workspace opzetten

Om een nieuwe workspace op te zetten kunnen we gebruiken maken van de NX CLI met het volgende commando 

npx create-nx-workspace --preset=angular 

Deze zal enkel configuratie vragen stellen als project naam, stylesheet format, linting tool en of er gebruik gemaakt zal worden van NX cloud. Default wordt Jest en Cypress toegevoegd als testframeworks aan het project. 

Workspace name (e.g., org name) APPEELIO 
What to create in the new workspace angular  
Application name todos  
Default stylesheet format CSS 

Na dit zal een nieuw project aangemaakt worden met deze structuur  

apps/
  {{appName}}
  {{appName}}-e2e
    de applicatie projecten
    libs
    de plaats waar alle libraries zullen geplaatst worden
    tools
    de plaats voor alle scripts voor het project  


Een library maken

Volgens de Nx workspace methode zal er veel gewerkt worden met kleine libraries. Dit zal er voor zorgen dat er tijdens het developement met NX veel gebruik zal worden gemaakt van creëren van libraries.  

De voordelen van het maken van libraries houdt in  

  • Vluggere commandos  

    • Via het commando nx affected en de computation cache is het mogelijk om enkel testen te runnen die enkel aangeraakt zijn bij een code change 

  • Visualizing architecture  

    • Met nx graph is het makkelijk om een grafiek te visualiseren die aantoont hoe de libs en applicaties relatereren tot elkaar  

  • Beperkingen afdwingen  

    • Elke library heeft zijn eigen index.ts file die ervoor zorgt dat enkel de api die publiek gexprosed word kan gebruikt worden in ander libraries  

Om in NX een library aan te maken kunnen we ook weer gebruik maken van de NX CLI  

 nx g @nrwl/angular:lib mylib 

  • --directory=”name subfolder” 

    • Hiermee kan je libraries nesten in een specifieke subfolder  

Dit commando zal een library genereren in de libs folder en zal de set up van deze voor zich nemen. Elke lib zal een index.ts file hebben die het access point zal zijn van de library en zal dus de publieke api van de library zijn. 

Conclusie

Het werken met een NX workspace zorgt ervoor dat we gemakkelijk kunnen gebruik maken van een monorepo en zorgt voor vele tools die ervoor zorgen dat development een stuk vlugger vooruit kan gaan. Het kan gebruikt worden voor elke size project en is makkelijk opzetbaar in een nieuw of bestaand project. 

Ellen

Ellen

Delen:

Op zoek naar inspiratie?

Wij zorgen voor gepast advies op het vlak van frontend development.

💌

Insights

Meer inzichten

conference

🛠 Frontend development

Vue Amsterdam 2024: dag 1

Dag 1 van de jaarlijkse Vue Amsterdam conference.

A person holding a smartphone

📱 PWA,
🛠 Frontend development

PWA. Nu meer dan ooit.

De kloof tussen native en web wordt steeds kleiner. Dat bewijst ook de komst van Push Notifications voor web apps op het Home Screen (PWA’s) in iOS 16.4. Deze functionaliteit was al langer beschikbaar op Android, maar nu kunnen ontwikkelaars dit eindelijk voor beide platforms implementeren. Android en iOS samen hebben een marktaandeel van maar liefst 99% van alle mobiele gebruikers.

nuxt-gsap

💫 Motion,
🛠 Frontend development

Motion Library

Om een aantrekkelijke en moderne UI te bekomen, is het animeren van een website van groot belang. Daarom hebben we bij Appeel gewerkt aan een animatie project “Motion library”. In dit project worden verschillende componenten van een website geanimeerd en de code ervan getoond om zo als inspiratiebron te dienen voor alle collega’s van Appeel.