Le nouveau Builder
Dans les versions précédentes, Angular a toujours disposé de différents builders pour construire ses applications. Il existe deux grands types d’applications Angular :
- En premier nous retrouvons le Client-side rendering : l’application est entièrement construite côté client, c’est-à-dire que l’application est représentée sous forme de DOM (Document Object Model). La navigation, la récupération des données et le templating sont gérés côté client plutôt que côté serveur.
- En deuxième nous retrouvons le Server-Side Rendering (SSR) : l’application est générée en format HTML, chaque page étant rendue en HTML en réponse à une navigation, puis réhydratée pour devenir dynamique.
Pour ces deux types d’applications, le builder est différent, par exemple :
@angular-devkit/build-angular:browser
pour les applications client-side rendering,@nguniversal/builders:ssr-dev-server
pour les applications server-side rendering.
Avec le lancement d’Angular 16, une nouvelle option expérimentale a été ajoutée : @angular-devkit/build-angular:browser-esbuild. Cette fonctionnalité permet l’utilisation de Vite pour le serveur de développement et Esbuild pour la construction, offrant des performances remarquables avec une réduction significative du temps de construction de l’application et une amélioration du temps de développement. Cependant, le support pour le rendu côté serveur n’avait pas été inclus dans cette version.
Maintenant, avec l’arrivée d’Angular 17, un tout nouveau builder « générique » est présenté. Ce builder permet de créer à la fois des applications côté client et côté serveur. Ainsi avec Angular 17 nous avons désormais : @angular-devkit/build-angular:application
Pour les applications existantes qui utilisent @angular-devkit/build-angular:browser-esbuild, la transition vers ce nouveau builder est relativement simple. Cependant, pour les applications impliquant le rendu côté serveur, la migration est un peu plus délicate en raison des ajustements nécessaires sur plusieurs propriétés.