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

After GZIP compression these minified files vary in size:
Boot
  32774 bytes (32.0k)
CDN
unpkg
  31759 bytes (31.0k)
CDN
cdnjs
  28883 bytes (28.2k)
CDN
gzip -6 (default)
  28717 bytes (28.0k)
local copy
gzip -9
  28660 bytes (28.0k)
local copy
jsdelivr
  28647 bytes (28.0k)
CDN
libdeflate -12
  27718 bytes (27.1k)
local copy
7zip -mx=9 -tgzip
  27705 bytes (27.1k)
local copy
kzip -s0 -rn -b0
  27699 bytes (27.0k)
local copy
zultra
  27657 bytes (27.0k)
local copy
pigz -11 -n
  27652 bytes (27.0k)
local copy
Zopfli
  27608 bytes (27.0k)
local copy

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

You will automatically get the smallest Vue 2.3.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 1039 bytes by using my Vue 2.3.0 Zopfli version instead of the best available CDN (3.76% smaller than jsdelivr, 27608 vs. 28647 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 --mls2 --bsr6 --lazy --ohh

(found April 28, 2017)
Description Value Parameter
iterations 1000000  --i1000000
maximum blocks 8  --mb8
maximum length score 2  --mls2
block splitting recursion 6  --bsr6
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

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.3.0.min.js --location | md5sum
e92b692efff834c1199f8668dd780f3b  -
curl --silent --compressed https://minime.stephan-brumme.com/files/vue/vue-2.3.0.min.zopfli.js.gz | md5sum
e92b692efff834c1199f8668dd780f3b  -

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

All listed CDNs deliver identical contents:
CDN Size (compressed) MD5 (uncompressed) Timestamp
Boot 32774 bytes e92b692efff834c1199f8668dd780f3b April 27, 2017 @ 15:22
unpkg 31759 bytes e92b692efff834c1199f8668dd780f3b April 27, 2017 @ 17:18
cdnjs 28883 bytes e92b692efff834c1199f8668dd780f3b (invalid)
jsdelivr 28647 bytes e92b692efff834c1199f8668dd780f3b (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
27608 bytes -1 byte zopfli --i1000000 --mls2 --bsr6 --lazy --ohh April 28, 2017 @ 12:51
27609 bytes -3 bytes zopfli --i100000 --mls2 --bsr9 --lazy --ohh April 27, 2017 @ 18:29
27612 bytes -1 byte zopfli --i10000 --mls2 --bsr9 --lazy --ohh April 27, 2017 @ 17:49
27613 bytes -1 byte zopfli --i10000 --mls2 --bsr6 --lazy --ohh April 27, 2017 @ 17:48
27614 bytes -3 bytes zopfli --i10000 --mls16 --bsr9 --lazy --ohh April 27, 2017 @ 17:32
27617 bytes -1 byte zopfli --i1000 --mls16 --bsr9 --lazy --ohh April 27, 2017 @ 17:28
27618 bytes -1 byte zopfli --i1000 --mls2 --bsr6 --lazy --ohh April 27, 2017 @ 17:28
27619 bytes -3 bytes zopfli --i1000 --mls4 --bsr19 --lazy --ohh April 27, 2017 @ 17:28
27622 bytes zopfli --i100 --mls2 --bsr9 --lazy --ohh April 27, 2017 @ 17:24

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:48.

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
27661 27660 27660 27663 27656 27656 27655 27631 27636 27631 27642 27642 27633 27644 27657
27638 27639 27637 27638 27655 27653 27654 27633 27625 27625 27635 27639 27634 27645 27635
27608 27627 27615 27629 27630 27627 27633 27637 27637 27630 27645 27629 27639 27633 27633
27627 27630 27625 27629 27657 27628 27626 27628 27628 27625 27628 27640 27640 27629 27627
27639 27626 27626 27632 27630 27626 27658 27632 27656 27628 27626 27642 27637 27629 27628
27609 27618 27628 27613 27636 27626 27628 27642 27629 27630 27627 27633 27638 27631 27636
27626 27625 27625 27631 27646 27624 27625 27633 27628 27625 27627 27640 27638 27638 27632
27634 27633 27632 27631 27623 27635 27654 27628 27629 27629 27629 27629 27638 27635 27632
27631 27630 27630 27632 27650 27627 27629 27627 27636 27626 27627 27630 27635 27632 27635
27641 27629 27630 27629 27646 27636 27650 27629 27629 27628 27634 27633 27633 27640 27630
27637 27635 27638 27636 27635 27638 27626 27642 27637 27630 27627 27627 27638 27629 27639
27616 27635 27628 27633 27631 27628 27626 27627 27628 27625 27634 27630 27632 27627 27633
27627 27620 27630 27624 27628 27634 27625 27628 27625 27625 27627 27629 27632 27632 27629
27624 27624 27624 27632 27631 27638 27657 27628 27638 27628 27627 27629 27636 27633 27633
27624 27626 27627 27632 27635 27635 27626 27627 27628 27627 27626 27630 27636 27629 27649
27615 27615 27621 27631 27631 27626 27626 27642 27629 27627 27628 27625 27634 27631 27650
27628 27627 27621 27629 27635 27634 27653 27629 27629 27626 27626 27629 27632 27630 27635
27635 27616 27625 27629 27629 27628 27629 27629 27628 27628 27627 27640 27641 27631 27635
27617 27612 27626 27627 27650 27630 27627 27629 27628 27627 27626 27630 27632 27631 27639
27632 27625 27624 27628 27647 27634 27650 27627 27635 27627 27627 27627 27635 27630 27633
27631 27648 27651 27645 27646 27649 27649 27641 27641 27625 27628 27627 27634 27632 27631
27624 27630 27624 27625 27629 27627 27625 27647 27629 27627 27628 27629 27635 27633 27627
27638 27630 27622 27645 27646 27626 27649 27628 27637 27626 27629 27627 27634 27630 27629

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 27622 bytes 100%
1,000 27617 bytes -5 bytes 100%
10,000 27612 bytes -5 bytes 100%
100,000 27609 bytes -3 bytes 1.16%
1,000,000 27608 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
27699 bytes +91 bytes (+0.33%)
27703 bytes +95 bytes (+0.34%) +4 bytes
27713 bytes +105 bytes (+0.38%) +14 bytes
27717 bytes +109 bytes (+0.39%) +18 bytes
27726 bytes +118 bytes (+0.43%) +27 bytes
27713 bytes +105 bytes (+0.38%) +14 bytes
27741 bytes +133 bytes (+0.48%) +42 bytes
27774 bytes +166 bytes (+0.60%) +75 bytes
27807 bytes +199 bytes (+0.72%) +108 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 22850 bytes -4758 bytes (-17.23%)
RAR (proprietary) RAR rar a -m5 -md64m -mc63:128t -mt1 23516 bytes -4092 bytes (-14.82%)
PPMd (Wikipedia) 7zip 7za a -mx=9 -m0=ppmd 24216 bytes -3392 bytes (-12.29%)
Brotli (Wikipedia) brotli brotli -q 11 25719 bytes -1889 bytes (-6.84%)
Burrows-Wheeler transform (Wikipedia) bzip2 bzip2 -9 26402 bytes -1206 bytes (-4.37%)
LZMA2 (Wikipedia) xz xz -9 26480 bytes -1128 bytes (-4.09%)
Zstandard (Wikipedia) zstd zstd -19 27158 bytes -450 bytes (-1.63%)

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.