Choose a version:
31% The original file has 278790 bytes (272.3k) and is available from the project website.
There you can find the official minified version, too, which brings down the size to 85310 bytes (83.3k, 31%).

After GZIP compression these minified files vary in size:
Boot
  35656 bytes (34.8k)
CDN
cdnjs
  31310 bytes (30.6k)
CDN
gzip -6 (default)
  31126 bytes (30.4k)
local copy
unpkg
  31089 bytes (30.4k)
CDN
gzip -9
  31073 bytes (30.3k)
local copy
libdeflate -12
  30106 bytes (29.4k)
local copy
kzip -s0 -rn -b0
  30062 bytes (29.4k)
local copy
7zip -mx=9 -tgzip
  30056 bytes (29.4k)
local copy
pigz -11 -n
  30012 bytes (29.3k)
local copy
zultra
  30001 bytes (29.3k)
local copy
Zopfli
  29945 bytes (29.2k)
local copy
Zopfli (defluff)
  29943 bytes (29.2k)
local copy

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

You will automatically get the smallest Vue 2.5.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 1144 bytes by using my Vue 2.5.2 Zopfli version instead of the best available CDN (3.82% smaller than unpkg, 29945 vs. 31089 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 --mls4 --bsr30 --lazy --ohh

(found October 17, 2017)
Description Value Parameter
iterations 1000000  --i1000000
maximum blocks 8  --mb8
maximum length score 4  --mls4
block splitting recursion 30  --bsr30
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 (29943 bytes).

Verify file integrity

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

MD5:
curl --silent --compressed https://raw.githubusercontent.com/vuejs/vue/vue-2.5.2.min.js --location | md5sum
49756328f0029f3d41bd6416f06d6fc5  -
curl --silent --compressed https://minime.stephan-brumme.com/files/vue/vue-2.5.2.min.zopfli.js.gz | md5sum
49756328f0029f3d41bd6416f06d6fc5  -

SHA1:
curl --silent --compressed https://raw.githubusercontent.com/vuejs/vue/vue-2.5.2.min.js --location | sha1sum
8c2b32a71638877179f7ea06c7dbd5c587a92090  -
curl --silent --compressed https://minime.stephan-brumme.com/files/vue/vue-2.5.2.min.zopfli.js.gz | sha1sum
8c2b32a71638877179f7ea06c7dbd5c587a92090  -

All listed CDNs deliver identical contents:
CDN Size (compressed) MD5 (uncompressed) Timestamp
Boot 35656 bytes 49756328f0029f3d41bd6416f06d6fc5 November 14, 2017 @ 18:15
cdnjs 31310 bytes 49756328f0029f3d41bd6416f06d6fc5 (invalid)
unpkg 31089 bytes 49756328f0029f3d41bd6416f06d6fc5 (invalid)

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

Other Versions

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

2.6.14, 2.6.13, 2.6.12, 2.6.11, 2.6.10, 2.6.9, 2.6.8, 2.6.7, 2.6.6, 2.6.5, 2.6.4, 2.6.3, 2.6.2, 2.6.1, 2.6.0, 2.5.22, 2.5.21, 2.5.20, 2.5.19, 2.5.18, 2.5.17, 2.5.16, 2.5.15, 2.5.14, 2.5.13, 2.5.12, 2.5.11, 2.5.10, 2.5.9, 2.5.8, 2.5.7, 2.5.6, 2.5.5, 2.5.4, 2.5.3, 2.5.2, 2.5.1, 2.5.0, 2.4.4, 2.4.3, 2.4.2, 2.4.1, 2.4.0, 2.3.4, 2.3.3, 2.3.2, 2.3.1, 2.3.0, 2.2.6, 2.2.5, 2.2.4, 2.2.3, 2.2.2, 2.2.1, 2.2.0, 2.1.10, 2.1.9, 2.1.8, 2.1.7, 2.1.6, 2.1.5, 2.1.4, 2.1.3, 2.1.2, 2.1.1, 2.1.0, 2.0.8, 2.0.7, 2.0.6, 2.0.5, 2.0.4, 2.0.3, 2.0.2, 2.0.1, 2.0.0,
1.0.28, 1.0.27, 1.0.26, 1.0.25, 1.0.24, 1.0.23, 1.0.22, 1.0.21, 1.0.20, 1.0.19, 1.0.18, 1.0.17, 1.0.16, 1.0.15, 1.0.14, 1.0.13, 1.0.12, 1.0.11, 1.0.10, 1.0.9,
0.10.6, 0.10.5, 0.10.4, 0.10.3, 0.10.2, 0.10.1, 0.10.0,
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 AngularJS, BackboneJS, Bootstrap, D3, Dojo, Ember, jQuery, Knockout, lodash, React, Socket.IO, ThreeJS and UnderscoreJS.

Changelog

Best Zopfli parameters so far:
Size Improvement Parameters Found
29945 bytes -2 bytes zopfli --i1000000 --mls4 --bsr30 --lazy --ohh October 17, 2017 @ 17:18
29947 bytes -2 bytes zopfli --i100000 --mls4 --bsr30 --lazy --ohh October 17, 2017 @ 11:32
29949 bytes -6 bytes zopfli --i10000 --mls4 --bsr30 --lazy --ohh October 16, 2017 @ 22:56
29955 bytes -4 bytes zopfli --i1000 --mls4 --bsr30 --lazy --ohh October 16, 2017 @ 15:51
29959 bytes -2 bytes zopfli --i1000 --mls2 --bsr18 --lazy --ohh October 16, 2017 @ 15:44
29961 bytes zopfli --i100 --mls4 --bsr30 --lazy --ohh October 16, 2017 @ 15:07

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

Most recent activity on July 20, 2020 @ 12:51.

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
30004 30003 29993 30005 29998 30013 30012 29989 30013 30013 29995 29996 29984 29995 29981
29989 29981 29982 29987 29990 29984 30005 29990 29988 29981 29984 29979 29987 29985 29989
29983 29983 29984 29984 29983 29982 29981 29983 29982 29984 29993 29981 29983 29982 29984
29983 29981 29980 29982 29983 29980 29979 29982 29982 29981 29983 29981 29984 29986 29983
29957 29959 29959 30001 29980 29982 29982 29979 29980 29980 29984 29979 29982 30005 29984
29983 29981 29983 29983 29984 29982 29982 29987 29983 29982 29982 30003 29984 29996 29983
29983 29984 29983 29983 29983 29981 29980 29982 29982 29981 29982 29980 29982 29981 29985
29960 29979 29983 29983 29984 29980 29981 29982 29982 29982 29984 29981 29984 29986 29984
29987 29965 29983 29982 29980 29982 29981 29982 29982 29982 29982 29980 29984 29987 29984
29983 29984 29984 29983 29980 29984 29981 29981 29981 29983 29982 29982 29982 29985 29983
29983 29984 29983 29983 29982 29980 29981 29981 29982 29983 29993 29983 29979 29982 29983
29981 29985 29982 29984 29983 29980 29981 29982 29985 29983 29981 29979 29984 29986 29983
29982 29983 29981 29984 29980 29983 29980 29982 29981 29981 29983 29981 29983 29988 29983
29982 29983 29983 29983 29983 29982 29981 29982 29980 29981 29984 29990 29984 29985 29983
29955 29959 29983 29983 29983 29980 29992 30000 29981 30000 29983 29979 29982 29988 29983
29981 29983 29981 29993 29980 29981 29983 29981 29982 29985 29984 29980 29980 29986 29984
29982 29981 29983 29983 29981 29992 29981 29984 29981 29984 29983 29981 29984 29987 29984
29981 29952 29980 29983 29982 29982 29982 30000 29980 29982 29983 29980 29982 29984 29983
29983 29983 29983 29983 29982 29980 29981 29983 29983 29982 29983 29980 29983 29986 29982
29983 29980 29984 29984 29980 29983 29980 29981 29981 29983 29987 29980 29982 29987 29998
29986 29955 29983 29984 29980 29984 29993 29983 29983 29983 29982 29980 29985 29982 29984
29983 29945 29984 29983 29981 29983 29982 29983 29982 29983 29982 29980 29984 29987 29983
29983 29979 29983 29983 29981 29983 29981 29984 29982 29983 29984 29980 29982 29986 29982

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 29961 bytes 100%
1,000 29955 bytes -6 bytes 100%
10,000 29949 bytes -6 bytes 100%
100,000 29947 bytes -2 bytes 0.58%
1,000,000 29945 bytes -2 bytes 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
30062 bytes +117 bytes (+0.39%)
30063 bytes +118 bytes (+0.39%) +1 byte
30081 bytes +136 bytes (+0.45%) +19 bytes
30096 bytes +151 bytes (+0.50%) +34 bytes
30075 bytes +130 bytes (+0.43%) +13 bytes
30100 bytes +155 bytes (+0.52%) +38 bytes
30132 bytes +187 bytes (+0.62%) +70 bytes
30161 bytes +216 bytes (+0.72%) +99 bytes
30189 bytes +244 bytes (+0.81%) +127 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 24580 bytes -5365 bytes (-17.92%)
RAR (proprietary) RAR rar a -m5 -md64m -mc63:128t -mt1 25369 bytes -4576 bytes (-15.28%)
PPMd (Wikipedia) 7zip 7za a -mx=9 -m0=ppmd 26435 bytes -3510 bytes (-11.72%)
Brotli (Wikipedia) brotli brotli -q 11 27901 bytes -2044 bytes (-6.83%)
Burrows-Wheeler transform (Wikipedia) bzip2 bzip2 -9 28455 bytes -1490 bytes (-4.98%)
LZMA2 (Wikipedia) xz xz -9 28648 bytes -1297 bytes (-4.33%)
Zstandard (Wikipedia) zstd zstd -19 29425 bytes -520 bytes (-1.74%)

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.