Forzando a consumir la 煤ltima versi贸n de una aplicaci贸n Angular馃
Angular dispone de herramientas nativas para forzar que los usuarios que consuman nuestras aplicaciones lo hagan utilizando la 煤ltima versi贸n desplegada 馃殌
Por defecto, cuando desplegamos nuestra aplicaci贸n Angular y un usuario la consume queda almacenada en la cach茅 de su navegador.
Esto se hace con el objetivo de que la pr贸xima vez que el mismo usuario acceda a nuestra aplicaci贸n lo haga desde su cach茅 y el acceso sea inmediato.
Imagina que actualizamos nuestra aplicaci贸n Angular.
Los usuarios que ya la hayan utilizado, no consumir谩n esta 煤ltima versi贸n hasta que su navegador actualice la cach茅, o bien, el usuario actualice la cach茅 de su navegador manualmente.
La actualizaci贸n del cach茅 depender谩 del navegador y la configuraci贸n de cada usuario.
驴C贸mo se compila una aplicaci贸n Angular por defecto?
Antes de desplegar nuestra aplicaci贸n Angular la tendremos que compilar, y para ello utilizamos el comando ng build
con el par谩metro configuration=production
ng build --configuration=production
Explorando las opciones del ng build
En la documentaci贸n oficial de Angular encontrar谩s todas las opciones que tiene disponible el comando ng build
,
Si en la documentaci贸n encuentras par谩metros que no est谩n disponibles para tu proyecto de Angular ser谩 porque tu proyecto es de una versi贸n anterior.
Puedes ver los par谩metros disponibles del comando ng build
para tu proyecto de angular escribiendo en una consula dentro de tu proyecto ng build --help
驴C贸mo fuerzo a que los usuarios consuman la 煤ltima versi贸n de mi aplicaci贸n Angular desplegada?
El secreto est谩 en una de los par谩metros que nos brinda el ng build
, concretamente en la opci贸n --output-hashing
Seg煤n la documentaci贸n oficial de Angular, al par谩metro --output-hashing le podremos asignar none | all | media | bundles, siendo el valor por defecto none.
- Te explico lo que hace cada uno de los valores:
none
; no har谩 nada.all
; agrega un hash a todos los archivos generados, lo que permitir谩 evitar consumir la cach茅 cuando cambian.media
; agrega un hash solo a los archivos multimedia, como las im谩genes.bundles
; agrega un hash solo a los archivos JavaScript compilados.
As铆 que resumiendo, si quieres evitar la cach茅 del navegador del usuario y que siempre se consuma la 煤ltima versi贸n de tu aplicaci贸n Angular compila tu proyecto con
ng build [tu_otros_par谩metros] --output-hashing=all
Hasta luego 馃枛