~4 min de lecture
Angular 21 : les nouveautés visibles dès la création d’un projet
Angular 21 est arrivé avec une série de nouveautés très visibles dès la création d’un nouveau projet.
Dans cet article, on passe en revue tout ce qui change quand on lance un ng new :
- intégration native de Tailwind,
- Vitest comme runner de tests par défaut,
- Angular zoneless sans configuration additionnelle,
- l’évolution du lint,
- la simplification autour de
provideHttpClient, - et quelques détails révélateurs de la direction que prend Angular.
🧱 1. Un nouveau projet… mais plus moderne
La création de projet conserve la même commande et les questions habituelles :
- routing ?
- composants standalone ?
- solution de style ?
Mais le squelette généré reflète l’écosystème Angular moderne : standalone + signals + zoneless + Vitest + choix Tailwind natif.
Sans changer ton workflow, tu démarres maintenant avec :
- moins de dépendances historiques,
- plus d’outils modernes intégrés,
- et un projet immédiatement aligné sur Angular v21.
🎨 2. Tailwind directement intégré lors du ng new
Grande nouveauté : Tailwind est maintenant proposé directement lors de la création du projet.
Avant :
Il fallait installer Tailwind, configurer PostCSS, créer tailwind.config.js… bref, plusieurs étapes.
Maintenant :
Tu sélectionnes Tailwind dans le prompt, et Angular génère automatiquement :
- la configuration Tailwind,
- les fichiers nécessaires,
- la connexion avec Vite/Rspack.
Tu peux utiliser Tailwind immédiatement sans rien faire de plus.
Tailwind n’est plus un “setup externe”, c’est un citoyen natif de l’écosystème Angular 21.
🧪 3. Vitest devient le runner de tests par défaut
Angular 21 abandonne complètement Karma/Jasmine au profit de Vitest.
Ce que ça change :
- tests bien plus rapides,
- setup minimal,
- DX moderne,
- une config test cohérente avec Vite et le nouvel écosystème.
Le projet généré inclut :
vitest.config.ts,- les tests d'exemple,
- le setup Angular + Vitest prêt à tourner.
Angular rejoint enfin le reste de l’écosystème front sur le choix du runner moderne.
⚡ 4. Zoneless par défaut : Zone.js disparaît
C’est l’un des changements majeurs d’Angular 21 :
Zone.js n’est plus installé par défaut dans un nouveau projet.
Pourquoi ?
- Les signals permettent de contrôler le change detection autrement.
- Le modèle mental devient plus simple.
- Le framework pousse vers un Angular plus performant et plus prévisible.
Tu peux toujours réactiver Zone.js si tu en as besoin, mais la voie par défaut est maintenant zoneless.
🧹 5. Le lint évolue : ESLint oui, script lint non
Un détail qui surprend :
Il n’y a plus de script lint ajouté dans le package.json.
Et attention : c'est seulement si tu run ng lintqu'il te propose d'installer ESLint.
{
"scripts": {
"lint": "ng lint"
}
}
Angular fait simplement le choix d’un template plus minimaliste, dans lequel tu branches toi-même ton workflow.
🌐 6. provideHttpClient devient optionnel dans les cas simples
Autre simplification intéressante :provideHttpClient() n’est plus requis si tu fais du HTTP basique.
Autrement dit :
Pour des scénarios CRUD simples
→ tu n’as rien à ajouter dansapp.config.ts.Pour des besoins avancés
→ tu réintroduisprovideHttpClientavec ses options (withFetch, interceptors…).
Exemple minimaliste explicitement requis uniquement en cas d’options :
providers: [
provideHttpClient(withFetch()),
]
Le principe : simple par défaut, explicite dès que tu actives des features avancées.
🧩 7. Les petits détails du scaffolding
Quelques points visibles dans le code généré :
- certains exemples utilisent déjà des signals,
- la structure reste en composants standalone,
- la DX globale est plus “moderne” dès le premier regard.
Angular envoie un signal clair :
“Voilà l’Angular de 2025. Sans zones, sans Karma, sans boilerplate. Avec Vitest, Tailwind et Signals.”
✅ 8. Résumé : ce que tu dois retenir d’Angular 21 côté projet
| Feature | Comportement en Angular 21 |
|---|---|
| Tailwind | Intégration native, setup auto |
| Tests | Vitest par défaut |
| Zone.js | Plus installé par défaut |
| Lint | Config ESLint présente, script non ajouté |
| HTTP | provideHttpClient optionnel si pas d’options |
| DX | Projets plus propres et plus modernes |
Angular continue sa transformation profonde commencée en v17 : moins de magie, plus de contrôle, meilleure DX et performances accrues.