I have very big images in my assets, which slows down the site by a lot for slower networks. (you can read more about the topic on this lighthouse linked page)
ng build --prod).ng serve).example.jpg → should become: example_x265.jpg, example_x128.jpg, ...)The most promising guide I have found for that is this one here, which describes how to use the imagemin package in combination with the ngx-build-plus package.
Unfortunately, after following the tutorial, I get the following 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)
// ...
Is there any way to compress asset images on build?
Angular Version: 13.1.0
Note: I do not want to know how to upload images to third party storage solutions.
I specifically want to create a compressed version of my static assets on build time.
If you have very big image assets it should be hosted separately in a service like amazons3 or Google Cloud Storage.
Apart from making your load time and builds faster it will also help to load image depending on screen resolution. You can either automate this using lamda/cloud functions or manually compress images to different sizes and serve them based on device resolution.
I would never do that! because its against the convetions You should try Firebase storage, they give you 1 GB for free, and its easy to implement.