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

After GZIP compression these minified files vary in size:
unpkg
  78349 bytes (76.5k)
CDN
Boot
  62297 bytes (60.8k)
CDN
Google
  62297 bytes (60.8k)
CDN
cdnjs
  62297 bytes (60.8k)
CDN
gzip -6 (default)
  61975 bytes (60.5k)
local copy
gzip -9
  61812 bytes (60.4k)
local copy
libdeflate -12
  60044 bytes (58.6k)
local copy
7zip -mx=9 -tgzip
  59953 bytes (58.5k)
local copy
kzip -s0 -rn -b8
  59929 bytes (58.5k)
local copy
zultra
  59916 bytes (58.5k)
local copy
pigz -11 -n
  59870 bytes (58.5k)
local copy
Zopfli
  59807 bytes (58.4k)
local copy
Zopfli (defluff)
  59806 bytes (58.4k)
local copy

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

You will automatically get the smallest AngularJS 1.8.2 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 2490 bytes by using my AngularJS 1.8.2 Zopfli version instead of the best available CDN (4.16% smaller than cdnjs, 59807 vs. 62297 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 --bsr25 --lazy --ohh

(found July 22, 2021)
Description Value Parameter
iterations 1000000  --i1000000
maximum blocks 8  --mb8
maximum length score 16384  --mls16384
block splitting recursion 25  --bsr25
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 1 more byte (59806 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.2/angular.min.js --location | md5sum
a8b55518d979465737523088a9007e74  -
curl --silent --compressed https://minime.stephan-brumme.com/files/angularjs/angular-1.8.2.min.zopfli.js.gz | md5sum
a8b55518d979465737523088a9007e74  -

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

All listed CDNs deliver identical contents:
CDN Size (compressed) MD5 (uncompressed) Timestamp
unpkg 78349 bytes a8b55518d979465737523088a9007e74 (invalid)
Boot 62297 bytes a8b55518d979465737523088a9007e74 (invalid)
Google 62297 bytes a8b55518d979465737523088a9007e74 (invalid)
cdnjs 62297 bytes a8b55518d979465737523088a9007e74 (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
59807 bytes -1 byte zopfli --i1000000 --mls16384 --bsr25 --lazy --ohh July 22, 2021 @ 20:59
59808 bytes -1 byte zopfli --i100000 --mls16384 --bsr25 --lazy --ohh July 22, 2021 @ 12:12
59809 bytes -8 bytes zopfli --i100000 --mls16384 --bsr12 --lazy --ohh July 22, 2021 @ 11:24
59817 bytes -1 byte zopfli --i10000 --mls16384 --bsr12 --lazy --ohh July 21, 2021 @ 23:32
59818 bytes -3 bytes zopfli --i10000 --mls512 --bsr25 --lazy --ohh July 21, 2021 @ 18:07
59821 bytes -2 bytes zopfli --i1000 --mls2048 --bsr22 --lazy --ohh July 21, 2021 @ 14:35
59823 bytes -12 bytes zopfli --i1000 --mls16384 --bsr18 --lazy --ohh July 21, 2021 @ 14:18
59835 bytes zopfli --i100 --mls512 --bsr21 --lazy --ohh July 21, 2021 @ 13:55

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
59887 59886 59883 59874 59876 59857 59880 59882 59848 59845 59964 59881 59963 59874 59882
59856 59859 59854 59861 59852 59866 59863 59865 59838 59844 59845 59853 59847 59858 59860
59843 59844 59857 59852 59853 59858 59862 59861 59846 59844 59847 59861 59838 59837 59867
59847 59852 59875 59869 59852 59860 59872 59852 59846 59840 59866 59857 59857 59848 59860
59868 59880 59875 59859 59855 59868 59863 59863 59841 59837 59844 59858 59840 59852 59863
59858 59859 59846 59848 59852 59857 59866 59852 59839 59846 59847 59853 59840 59835 59860
59842 59856 59849 59851 59853 59860 59851 59863 59830 59820 59849 59861 59840 59837 59860
59850 59850 59848 59836 59845 59857 59862 59852 59828 59827 59829 59853 59843 59819 59860
59856 59853 59848 59855 59862 59860 59863 59851 59820 59823 59819 59852 59825 59809 59860
59845 59854 59848 59848 59837 59856 59851 59863 59821 59824 59830 59854 59829 59818 59860
59849 59843 59843 59852 59852 59858 59863 59854 59819 59822 59831 59854 59826 59820 59860
59845 59859 59862 59847 59852 59861 59863 59852 59822 59820 59829 59853 59824 59842 59860
59850 59854 59853 59845 59862 59857 59852 59863 59833 59823 59831 59853 59824 59830 59860
59846 59849 59846 59843 59838 59862 59861 59864 59819 59824 59830 59856 59826 59826 59860
59856 59853 59852 59843 59852 59857 59851 59852 59831 59827 59830 59853 59835 59820 59860
59854 59848 59837 59847 59838 59856 59862 59864 59832 59820 59825 59854 59832 59837 59860
59868 59854 59845 59838 59838 59858 59851 59854 59831 59821 59820 59853 59822 59836 59868
59846 59844 59838 59838 59852 59857 59851 59852 59819 59822 59829 59853 59824 59839 59862
59839 59845 59838 59843 59835 59860 59852 59855 59830 59831 59818 59853 59847 59835 59860
59843 59845 59841 59837 59850 59862 59863 59869 59830 59821 59831 59861 59845 59834 59862
59844 59850 59843 59848 59851 59857 59863 59863 59818 59830 59831 59854 59831 59807 59863
59850 59840 59837 59844 59839 59859 59852 59852 59830 59822 59831 59854 59831 59826 59860
59867 59846 59847 59856 59835 59845 59848 59846 59830 59820 59845 59833 59824 59819 59860

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 59835 bytes 100%
1,000 59821 bytes -14 bytes 100%
10,000 59817 bytes -4 bytes 100%
100,000 59808 bytes -9 bytes 0.58%
1,000,000 59807 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
59967 bytes +160 bytes (+0.27%) +38 bytes
59967 bytes +160 bytes (+0.27%) +38 bytes
59962 bytes +155 bytes (+0.26%) +33 bytes
59980 bytes +173 bytes (+0.29%) +51 bytes
59992 bytes +185 bytes (+0.31%) +63 bytes
59981 bytes +174 bytes (+0.29%) +52 bytes
59980 bytes +173 bytes (+0.29%) +51 bytes
60005 bytes +198 bytes (+0.33%) +76 bytes
59929 bytes +122 bytes (+0.20%)

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 45990 bytes -13817 bytes (-23.10%)
RAR (proprietary) RAR rar a -m5 -md64m -mc63:128t -mt1 48704 bytes -11103 bytes (-18.56%)
PPMd (Wikipedia) 7zip 7za a -mx=9 -m0=ppmd 50581 bytes -9226 bytes (-15.43%)
Brotli (Wikipedia) brotli brotli -q 11 54268 bytes -5539 bytes (-9.26%)
Burrows-Wheeler transform (Wikipedia) bzip2 bzip2 -9 54861 bytes -4946 bytes (-8.27%)
LZMA2 (Wikipedia) xz xz -9 55836 bytes -3971 bytes (-6.64%)
Zstandard (Wikipedia) zstd zstd -19 57176 bytes -2631 bytes (-4.40%)

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.