Angular
Overzicht
Angular is een op TypeScript gebaseerd webapplicatieframework ontwikkeld door Google. Het biedt een uitgebreide oplossing voor het bouwen van dynamische single-page applicaties met een componentgebaseerde architectuur.
Snelstart
Repository aanmaken vanuit sjabloon
Ga in je dashboard naar het tabblad Tools & Deployment. Klik op de knop "New Repository", selecteer het Angular-sjabloon uit het dropdownmenu, voer een repository-naam en subdomein in en klik vervolgens op "Create Repository".
Je repository klonen
git clone https://<git-server>/<username>/<repo-name>.git
cd <repo-name>
Afhankelijkheden installeren
npm install
Ontwikkelingsserver starten
npm start
Open http://localhost:4200 in je browser.
Bouwen & pushen
npm run build
git add .
git commit -m "Initial setup"
git push origin main
Lokale ontwikkeling met Docker
Als je geen Node.js lokaal hebt geïnstalleerd, kun je Docker gebruiken om Angular-commando's uit te voeren. Het project bevat een Dockerfile voor productie-builds.
Vereisten
Installeer Docker Desktop voor jouw besturingssysteem (Windows, Mac of Linux).
Commando's uitvoeren met Docker
# Run npm install
docker run --rm -v $(pwd):/app -w /app node:lts-alpine npm install
# Run development server (accessible at localhost:4200)
docker run --rm -v $(pwd):/app -w /app -p 4200:4200 node:lts-alpine npm start
# Build for production
docker run --rm -v $(pwd):/app -w /app node:lts-alpine npm run build
Projectstructuur
Begrijpen waar bestanden zich bevinden:
├── src/
│ ├── app/
│ │ ├── app.component.ts # Hoofdcomponent
│ │ ├── app.component.html # Hoofdtemplate
│ │ ├── app.component.css # Componentstijlen
│ │ ├── app.config.ts # App-configuratie
│ │ └── app.routes.ts # Routing-configuratie
│ ├── index.html # Hoofd-HTML-bestand
│ ├── main.ts # Applicatie-startpunt
│ └── styles.css # Globale stijlen (Tailwind)
├── public/ # Statische assets
├── angular.json # Angular CLI-configuratie
├── package.json # Afhankelijkheden en scripts
├── tailwind.config.js # Tailwind CSS-configuratie
├── tsconfig.json # TypeScript-configuratie
└── Dockerfile # Docker build-configuratie
Veelvoorkomende taken
Een nieuwe component aanmaken
ng generate component components/my-component
Een nieuwe service aanmaken
ng generate service services/my-service
Een route toevoegen
Bewerk src/app/app.routes.ts:
import { Routes } from '@angular/router';
import { HomeComponent } from './components/home/home.component';
export const routes: Routes = [
{ path: '', component: HomeComponent },
{ path: 'about', component: AboutComponent }
];
Tailwind CSS gebruiken
Tailwind is vooraf geconfigureerd. Gebruik klassen direct in je templates:
<div class="bg-blue-500 text-white p-4 rounded-lg">
Hello Tailwind!
</div>
Handige commando's
npm start
Ontwikkelingsserver starten (poort 4200)
npm run build
Bouwen voor productie
npm test
Unit-tests uitvoeren
ng generate component
Een nieuwe component aanmaken
ng generate service
Een nieuwe service aanmaken
ng generate --help
Alle beschikbare generators opsommen
Probleemoplossing
npm install fails with permission errors
Oorzaak: Permissieproblemen met de npm-cache of node_modules.
Oplossing: Verwijder de map node_modules en package-lock.json, en voer dan npm install opnieuw uit.
Port 4200 already in use
Oorzaak: Een ander proces gebruikt poort 4200.
Oplossing: Gebruik een andere poort: ng serve --port 4201 of stop het andere proces.
Module not found errors
Oorzaak: Afhankelijkheden zijn niet geïnstalleerd of beschadigd.
Oplossing: Voer npm install uit om alle afhankelijkheden te installeren.
Changes not reflecting in browser
Oorzaak: Browser-cache of live reload werkt niet.
Oplossing: Hard refresh (Ctrl+Shift+R of Cmd+Shift+R) of herstart de dev-server.
Build fails after deployment
Oorzaak: Build-fouten of ontbrekende afhankelijkheden.
Oplossing: Voer eerst lokaal npm run build uit om op fouten te controleren voordat je pusht.
Implementatie-workflow
Elke keer dat je code naar Git pusht, wordt je applicatie automatisch gebouwd en geïmplementeerd:
De URL van je geïmplementeerde applicatie volgt dit formaat:
https://<your-subdomain>-<repo-name>.<session-domain>
Voorbeeld: https://student01-module-a.demo.nstrim.app