Budgets Angular
Les budgets définissent des limites de taille sur la sortie du build. Angular avertit ou fait échouer le build si un bundle dépasse le seuil, empêchant ainsi la croissance accidentelle du bundle de passer inaperçue.
Configuration (angular.json)
Section intitulée « Configuration (angular.json) »"configurations": { "production": { "budgets": [ { "type": "initial", "maximumWarning": "500kb", "maximumError": "1mb" }, { "type": "anyComponentStyle", "maximumWarning": "4kb", "maximumError": "8kb" } ] }}Types de budgets
Section intitulée « Types de budgets »| Type | Ce qu’il mesure |
|---|---|
initial |
JS + CSS chargés au démarrage (le plus important) |
lazy |
N’importe quel chunk lazy-loaded |
allScript |
Somme de tous les scripts JS |
anyScript |
N’importe quel fichier JS |
any |
N’importe quel fichier de sortie |
anyComponentStyle |
Les styles inline d’un seul composant |
Avertissement vs Erreur
Section intitulée « Avertissement vs Erreur »| Niveau | Comportement |
|---|---|
maximumWarning |
Le build réussit, un avertissement est affiché |
maximumError |
Le build échoue — le pipeline CI est bloqué |
Définissez maximumWarning de manière conservative pour détecter la dérive tôt. Utilisez maximumError comme limite absolue.
Analyser le contenu du bundle
Section intitulée « Analyser le contenu du bundle »Quand un budget est dépassé, trouvez le responsable :
# Étape 1 : générer le fichier de statistiquesng build --stats-json
# Étape 2 : visualisernpx webpack-bundle-analyzer dist/my-app/browser/stats.jsonCauses fréquentes de bundles trop volumineux :
- Import d’une bibliothèque entière au lieu de fonctions spécifiques (
import * as _ from 'lodash') - Une grande dépendance tierce chargée en eager au lieu de lazy
- Dépendances dupliquées (différentes versions du même package)
Corrections rapides
Section intitulée « Corrections rapides »// ❌ Importe toute la bibliothèque (~70 ko)import * as _ from 'lodash';
// ✅ Tree-shakeable — seul ce que vous utilisezimport { debounce } from 'lodash-es';// ❌ Eager — augmente le bundle initialimport { ChartModule } from 'chart.js';
// ✅ Lazy — chargé uniquement quand nécessaireconst { Chart } = await import('chart.js');Budgets de départ recommandés
Section intitulée « Budgets de départ recommandés »| Type d’application | Avertissement initial |
Erreur initial |
|---|---|---|
| Landing / marketing | 150 ko | 250 ko |
| Application standard | 400 ko | 800 ko |
| Dashboard riche | 600 ko | 1 Mo |
Configurez les budgets à la création du projet — les mettre en place rétroactivement sur une grande application est douloureux.

