Search code examples
angularcompressionangular-cligzipangular7

how to enable gzip compression in angular cli for production build


I would want to compress the bundle files that are created when building the angular project. I use ng build --environment=${environment} to build the application currently and the version of "@angular/compiler-cli": "^4.0.0" do not generate the .gz files to the dist folder. What is the simplest way to generate .gz bundle files (preferable without touching webpack.config.js file)? PS: I knew the option for creating the .gz files was removed by the angular/cli team sometime back. But I need that desperately as my bundle files are huge.


Solution

  • You could achieve this with a simple bash script before transferring them to the server, or even adding it to package.json as a command

     "scripts": {
       "build.prod": "ng build --environment=prod && tar -zcvf archive.tar.gz dist/prod/*",
    

    Not sure what's your folder structure, but you can play around with tar -zcvf archive.tar.gz dist/prod/* in the terminal until you find paths that suite to your needs.

    EDIT: Seems I misunderstood the question, if it is about bundle size when serving the stuff to the end user, you should take a look at AOT + Rollup to minimize your bundle sizes. And enable gzip compression on your webserver when serving files (probably most servers have it enabled already).