Choose a version:
13% The original file has 1374778 bytes (1,342.6k) and is available from the project website.
There you can find the official minified version, too, which brings down the size to 176531 bytes (172.4k, 13%).

After GZIP compression these minified files vary in size:
unpkg
  78067 bytes (76.2k)
CDN
Boot
  62157 bytes (60.7k)
CDN
Google
  62157 bytes (60.7k)
CDN
cdnjs
  62157 bytes (60.7k)
CDN
gzip -6 (default)
  61826 bytes (60.4k)
local copy
gzip -9
  61672 bytes (60.2k)
local copy
libdeflate -12
  59916 bytes (58.5k)
local copy
kzip -s0 -rn -b1
  59826 bytes (58.4k)
local copy
7zip -mx=9 -tgzip
  59822 bytes (58.4k)
local copy
zultra
  59790 bytes (58.4k)
local copy
pigz -11 -n
  59733 bytes (58.3k)
local copy
Zopfli
  59675 bytes (58.3k)
local copy
Zopfli (defluff)
  59673 bytes (58.3k)
local copy

perma-link to the smallest file on my server:
http://minime.stephan-brumme.com/files/angularjs/angular-1.8.0.min.js (or via HTTPS)

You will automatically get the smallest AngularJS 1.8.0 file, ETag caching is available and
if your browser doesn't support GZIP decompression then the uncompressed version will be sent.

Currently best Zopfli settings

Save 2482 bytes by using my AngularJS 1.8.0 Zopfli version instead of the best available CDN (4.16% smaller than cdnjs, 59675 vs. 62157 bytes):
You can use my super-compressed files for whatever purpose you like as long as you respect the library's original license agreement.
There are no restrictions from my side - but please avoid hot-linking if you run a high-traffic website.

These command-line settings yielded the best compression ratio so far (Linux version of zopfli-krzymod):
zopfli --i1000000 --mb8 --mls16384 --bsr13 --lazy --ohh

(found July 22, 2021)
Description Value Parameter
iterations 1000000  --i1000000
maximum blocks 8  --mb8
maximum length score 16384  --mls16384
block splitting recursion 13  --bsr13
lazy matching in LZ77 yes  --lazy
optimized Huffman headers yes  --ohh
initial random W for iterations 1  --rw1
initial random Z for iterations 2  --rz2

Even Smaller Files Thanks To Defluff

Zopfli's output can be further optimized by the defluff tool.
In this particular case, defluff saves 2 more bytes (59673 bytes).

Verify file integrity

After decompression, my uncompressed files are identical to the original ones:

MD5:
curl --silent --compressed https://code.angularjs.org/1.8.0/angular.min.js --location | md5sum
57d5ec9bb2a88256b2a8e6e30f6d82ae  -
curl --silent --compressed https://minime.stephan-brumme.com/files/angularjs/angular-1.8.0.min.zopfli.js.gz | md5sum
57d5ec9bb2a88256b2a8e6e30f6d82ae  -

SHA1:
curl --silent --compressed https://code.angularjs.org/1.8.0/angular.min.js --location | sha1sum
89a0d3b6f64239119866905507e9bbfe54ccb4a1  -
curl --silent --compressed https://minime.stephan-brumme.com/files/angularjs/angular-1.8.0.min.zopfli.js.gz | sha1sum
89a0d3b6f64239119866905507e9bbfe54ccb4a1  -

All listed CDNs deliver identical contents:
CDN Size (compressed) MD5 (uncompressed) Timestamp
unpkg 78067 bytes 57d5ec9bb2a88256b2a8e6e30f6d82ae (invalid)
Boot 62157 bytes 57d5ec9bb2a88256b2a8e6e30f6d82ae (invalid)
Google 62157 bytes 57d5ec9bb2a88256b2a8e6e30f6d82ae (invalid)
cdnjs 62157 bytes 57d5ec9bb2a88256b2a8e6e30f6d82ae (invalid)

Note: only the MD5 hashes are shown to keep things simple.

Other Versions

Available AngularJS versions at minime.stephan-brumme.com:

1.8.2, 1.8.1, 1.8.0,
1.7.9, 1.7.8, 1.7.7, 1.7.6, 1.7.5, 1.7.4, 1.7.3, 1.7.2, 1.7.1, 1.7.0,
1.6.10, 1.6.9, 1.6.8, 1.6.7, 1.6.6, 1.6.5, 1.6.4, 1.6.3, 1.6.2, 1.6.1, 1.6.0,
1.5.11, 1.5.10, 1.5.9, 1.5.8, 1.5.7, 1.5.6, 1.5.5, 1.5.4, 1.5.3, 1.5.2, 1.5.1, 1.5.0,
1.4.14, 1.4.13, 1.4.12, 1.4.11, 1.4.10, 1.4.9, 1.4.8, 1.4.7, 1.4.6, 1.4.5, 1.4.4, 1.4.3, 1.4.2, 1.4.1, 1.4.0,
1.3.20, 1.3.19, 1.3.18, 1.3.17, 1.3.16, 1.3.15, 1.3.14, 1.3.13, 1.3.12, 1.3.11, 1.3.10, 1.3.9, 1.3.8, 1.3.7, 1.3.6, 1.3.5, 1.3.4, 1.3.3, 1.3.2, 1.3.1, 1.3.0,
1.2.32, 1.2.31, 1.2.30, 1.2.29, 1.2.28, 1.2.27, 1.2.26, 1.2.25, 1.2.24, 1.2.23, 1.2.22, 1.2.21, 1.2.20, 1.2.19, 1.2.18, 1.2.17, 1.2.16, 1.2.15, 1.2.14, 1.2.13, 1.2.12, 1.2.11, 1.2.10, 1.2.9, 1.2.8, 1.2.7, 1.2.6, 1.2.5, 1.2.4, 1.2.3, 1.2.2, 1.2.1, 1.2.0,
1.1.5, 1.1.4, 1.1.3, 1.1.2, 1.1.1, 1.1.0,
1.0.8, 1.0.7, 1.0.6, 1.0.5, 1.0.4, 1.0.3, 1.0.2, 1.0.1, 1.0.0,
0.10.6, 0.10.5, 0.10.4, 0.10.3, 0.10.2, 0.10.1, 0.10.0,
0.9.19, 0.9.18, 0.9.17, 0.9.16, 0.9.15, 0.9.14, 0.9.13, 0.9.12, 0.9.11, 0.9.10, 0.9.9, 0.9.8, 0.9.7, 0.9.6, 0.9.5, 0.9.4, 0.9.3, 0.9.2, 0.9.1, 0.9.0

The project site contains an overview how well these versions were compressed.
Other interesting projects are BackboneJS, Bootstrap, D3, Dojo, Ember, jQuery, Knockout, lodash, React, Socket.IO, ThreeJS, UnderscoreJS and Vue.

Changelog

Best Zopfli parameters so far:
Size Improvement Parameters Found
59675 bytes -1 byte zopfli --i1000000 --mls16384 --bsr13 --lazy --ohh July 22, 2021 @ 21:12
59676 bytes -1 byte zopfli --i100000 --mls16384 --bsr13 --lazy --ohh July 22, 2021 @ 12:12
59677 bytes -2 bytes zopfli --i100000 --mls16384 --bsr17 --lazy --ohh July 22, 2021 @ 11:21
59679 bytes -4 bytes zopfli --i10000 --mls16384 --bsr17 --lazy --ohh July 21, 2021 @ 16:09
59683 bytes -1 byte zopfli --i1000 --mls256 --bsr11 --lazy --ohh July 21, 2021 @ 15:02
59684 bytes -11 bytes zopfli --i1000 --mls4096 --bsr20 --lazy --ohh July 21, 2021 @ 14:19
59695 bytes -3 bytes zopfli --i1000 --mls2048 --bsr21 --lazy --ohh July 21, 2021 @ 14:18
59698 bytes zopfli --i100 --mls512 --bsr14 --lazy --ohh July 21, 2021 @ 14:02

If there are multiple parameter sets yielding the same compressed size, only the first one found is shown.

Most recent activity on July 23, 2021 @ 11:17.

Heatmaps

This Zopfli heatmap visualizes how compression changes when modifying the --bsr and --mls parameter.
Cell's contents is the best filesize achieved (in bytes, hover with mouse over cells to see number of iterations).

Good parameters are green, bad are red. The best and worst are bold as well.
The brightness of the blue background color indicates how many iterations were processed:
10,000, 100,000 or 1,000,000.
bsr \ mls
2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768
bsr \ mls
2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768
59753 59752 59750 59734 59743 59746 59744 59747 59745 59711 59826 59727 59826 59826 59747
59727 59731 59722 59730 59723 59730 59734 59714 59708 59708 59709 59697 59709 59706 59712
59713 59717 59729 59711 59718 59718 59729 59715 59709 59701 59708 59698 59701 59709 59711
59736 59718 59728 59711 59719 59727 59732 59699 59713 59718 59704 59710 59726 59715 59733
59734 59734 59738 59723 59720 59733 59731 59710 59707 59699 59705 59722 59706 59709 59713
59723 59722 59724 59711 59717 59718 59730 59699 59700 59710 59708 59699 59711 59706 59726
59705 59717 59726 59700 59722 59718 59718 59693 59689 59693 59693 59683 59711 59706 59712
59716 59716 59719 59710 59709 59729 59718 59680 59693 59683 59681 59684 59710 59688 59698
59720 59723 59724 59711 59695 59728 59730 59680 59682 59688 59688 59683 59692 59688 59726
59716 59704 59709 59711 59700 59734 59718 59681 59682 59684 59687 59681 59687 59675 59692
59720 59705 59710 59703 59710 59719 59729 59683 59681 59684 59693 59682 59697 59690 59693
59706 59710 59728 59714 59699 59729 59719 59681 59683 59694 59686 59680 59693 59705 59710
59716 59715 59708 59707 59708 59726 59718 59695 59697 59688 59686 59686 59693 59689 59715
59709 59718 59718 59710 59703 59719 59718 59681 59683 59686 59691 59689 59694 59677 59691
59703 59714 59719 59718 59704 59731 59718 59681 59683 59685 59695 59684 59680 59691 59694
59718 59714 59712 59705 59701 59730 59730 59693 59682 59685 59685 59680 59692 59706 59709
59711 59732 59708 59714 59704 59719 59718 59684 59690 59690 59686 59681 59694 59706 59708
59708 59715 59721 59710 59705 59718 59730 59680 59681 59683 59691 59683 59704 59706 59709
59708 59713 59724 59709 59703 59728 59717 59681 59690 59694 59688 59682 59709 59706 59709
59710 59710 59718 59705 59704 59718 59718 59690 59690 59684 59692 59682 59710 59706 59710
59717 59717 59712 59710 59696 59722 59728 59696 59685 59694 59688 59683 59695 59688 59711
59717 59728 59725 59705 59702 59728 59731 59681 59690 59691 59685 59690 59694 59687 59682
59719 59717 59718 59715 59704 59714 59704 59714 59681 59691 59686 59684 59695 59689 59709

Due to the Monte Carlo design of my search algorithm, not all parameters have reached the same number of iterations yet:
Iterations Min. Bytes Reduction Coverage
100 59698 bytes 100%
1,000 59683 bytes -15 bytes 100%
10,000 59679 bytes -4 bytes 100%
100,000 59676 bytes -3 bytes 0.58%
1,000,000 59675 bytes -1 byte 0.29%
10,000,000

KZIP has far less options available for tuning/optimization. I only played around with the number of blocks (parameter -n):
Blocks Min. Bytes Compared To Best Zopfli Compared To Best KZIP
59829 bytes +154 bytes (+0.26%) +3 bytes
59826 bytes +151 bytes (+0.25%)
59832 bytes +157 bytes (+0.26%) +6 bytes
59851 bytes +176 bytes (+0.29%) +25 bytes
59855 bytes +180 bytes (+0.30%) +29 bytes
59855 bytes +180 bytes (+0.30%) +29 bytes
59847 bytes +172 bytes (+0.29%) +21 bytes
59871 bytes +196 bytes (+0.33%) +45 bytes
59887 bytes +212 bytes (+0.36%) +61 bytes

Non-DEFLATE Algorithms

Archivers based on completely different compression algorithms often produce superior results.
Unfortunately, browsers only support gzip compression at the moment.
However, support for Brotli is constantly growing - but your browser doesn't support it.
Algorithm Program Parameters Size Compared To Best Zopfli
ZPAQ (Wikipedia) zpaq zpaq -method 69 45888 bytes -13787 bytes (-23.10%)
RAR (proprietary) RAR rar a -m5 -md64m -mc63:128t -mt1 48618 bytes -11057 bytes (-18.53%)
PPMd (Wikipedia) 7zip 7za a -mx=9 -m0=ppmd 50461 bytes -9214 bytes (-15.44%)
Brotli (Wikipedia) brotli brotli -q 11 54116 bytes -5559 bytes (-9.32%)
Burrows-Wheeler transform (Wikipedia) bzip2 bzip2 -9 54751 bytes -4924 bytes (-8.25%)
LZMA2 (Wikipedia) xz xz -9 55720 bytes -3955 bytes (-6.63%)
Zstandard (Wikipedia) zstd zstd -19 57068 bytes -2607 bytes (-4.37%)

Detailled Analysis

I wrote a DEFLATE decoder in Javascript. Click the button below to start a client-side analysis of the smallest gzipped files (may take a second):


Notes: pigz is a fast open source multi-threaded implementation of gzip written by one of the original authors of gzip.
However, when using compression level 11, pigz actually switches to the slower Zopfli algorithm and isn't multi-threaded anymore.
KrzyMOD's extensions to Zopfli offer the highest level of configuration and is therefore used for my brute-force search.
Ken Silverman wrote the closed-source KZIP compression program and Jonathon Fowler ported it to Linux.
Defluff was created by Joachim Henke; DeflOpt is a tool by Ben Jos Walbeehm.

website made by Stephan Brumme in 2015 and still improving in 2024.
all timestamps are displayed in central european time. see my changelog.
no flash, not even images or external css files - and everything squeezed into a single html file.
which was handsomely compressed before releasing it into the wild internet - obviously.

please visit my homepage and my blog, too.
email: minime (at) stephan-brumme.com

All trademarks are property of their respective owners. You know, the boring legal stuff.