Struktura projektu w Angular 20 jest zaprojektowana według zasad modularności, skalowalności i łatwości utrzymania. Angular CLI automatycznie generuje optymalną strukturę, która sprawdza się zarówno w małych, jak i enterprise’owych aplikacjach.
Przegląd struktury projektu
Po utworzeniu nowego projektu komendą ng new moja-aplikacja, otrzymujemy następującą strukturę:
moja-aplikacja/
├── .angular/ # [NOWE w Angular 17+] Cache dla szybszej kompilacji
├── .vscode/ # Konfiguracja VS Code (opcjonalne)
├── node_modules/ # Zainstalowane pakiety npm
├── src/ # Kod źródłowy aplikacji
├── .editorconfig # Konfiguracja formatowania dla różnych edytorów
├── .gitignore # Pliki ignorowane przez Git
├── angular.json # Konfiguracja projektu Angular
├── package.json # Zależności i skrypty npm
├── package-lock.json # Zablokowane wersje pakietów
├── README.md # Dokumentacja projektu
├── tsconfig.app.json # Konfiguracja TypeScript dla aplikacji
├── tsconfig.json # Główna konfiguracja TypeScript
└── tsconfig.spec.json # Konfiguracja TypeScript dla testówKatalog /src/ – Serce aplikacji
Struktura głównego katalogu źródłowego:
src/
├── app/ # Komponenty i logika aplikacji
├── assets/ # Zasoby statyczne (obrazy, fonty, JSON)
├── environments/ # Konfiguracja środowisk
├── favicon.ico # Ikona aplikacji
├── index.html # Główny plik HTML
├── main.ts # Punkt wejścia aplikacji
└── styles.scss # Globalne style aplikacjiSzczegółowy opis plików w /src/:
index.html – Szkielet aplikacji
<!doctype html>
<html lang="pl">
<head>
<meta charset="utf-8">
<title>MojaAplikacja</title>
<base href="/">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="favicon.ico">
</head>
<body>
<!-- Angular wstrzykuje tutaj główny komponent -->
<app-root></app-root>
</body>
</html>main.ts – Punkt startowy
import { bootstrapApplication } from '@angular/platform-browser';
import { appConfig } from './app/app.config';
import { AppComponent } from './app/app.component';
// Angular 20 - domyślnie używa standalone components
bootstrapApplication(AppComponent, appConfig)
.catch((err) => console.error(err));styles.css – Style globalne
/* Możesz importować zmienne, mixiny i reset CSS */
@import 'variables';
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Segoe UI', system-ui, sans-serif;
line-height: 1.6;
}Katalog /src/app/ – Komponenty aplikacji
Struktura w Angular 20 (Standalone Components):
app/
├── components/ # Komponenty UI
│ ├── header/
│ │ ├── header.component.ts
│ │ ├── header.component.html
│ │ ├── header.component.scss
│ │ └── header.component.spec.ts
│ └── footer/
├── pages/ # Komponenty stron/widoków
│ ├── home/
│ └── about/
├── services/ # Serwisy (logika biznesowa)
│ └── api.service.ts
├── models/ # Interfejsy i typy TypeScript
│ └── user.interface.ts
├── guards/ # Route guards
│ └── auth.guard.ts
├── pipes/ # Custom pipes
│ └── currency-pln.pipe.ts
├── directives/ # Custom directives
│ └── highlight.directive.ts
├── app.component.ts # Główny komponent
├── app.component.html # Szablon głównego komponentu
├── app.component.scss # Style głównego komponentu
├── app.component.spec.ts # Testy głównego komponentu
├── app.config.ts # [NOWE] Konfiguracja aplikacji
└── app.routes.ts # [NOWE] Definicja tras