Tengo imágenes muy grandes en mis activos, lo que ralentiza mucho el sitio para redes más lentas. ( puede leer más sobre el tema en esta página vinculada al faro )
ng build --prod ).ng serve ).example.jpg → debería convertirse en: example_x265.jpg , example_x128.jpg , ...)La guía más prometedora que he encontrado para eso es esta aquí , que describe cómo usar el paquete imagemin en combinación con el paquete ngx-build-plus .
Desafortunadamente, después de seguir el tutorial, aparece el siguiente error:
[error] TypeError: Cannot assign to read only property 'main.977fe6373cfd108d.js' of object '#<Object>' at ImageminPlugin._callee2$ (/.../node_modules/imagemin-webpack-plugin/dist/index.js:264:48) at tryCatch (/.../node_modules/babel-runtime/node_modules/regenerator-runtime/runtime.js:62:40) // ...¿Hay alguna forma de comprimir imágenes de activos en la compilación?
Angular Version: 13.1.0Nota: no quiero saber cómo cargar imágenes en soluciones de almacenamiento de terceros.
Específicamente, quiero crear una versión comprimida de mis activos estáticos en el momento de la compilación.
Si tiene activos de imagen muy grandes, debe alojarlos por separado en un servicio como amazons3 o Google Cloud Storage.
Además de hacer que el tiempo de carga y las compilaciones sean más rápidos, también ayudará a cargar la imagen según la resolución de la pantalla. Puede automatizar esto usando funciones lamda/nube o comprimir imágenes manualmente a diferentes tamaños y servirlas según la resolución del dispositivo.
¡Nunca haria eso! porque va en contra de las convenciones. Debes probar el almacenamiento de Firebase , te dan 1 GB gratis y es fácil de implementar.