Choose a version:
33% The original file has 213319 bytes (208.3k) and is available from the project website.
There you can find the official minified version, too, which brings down the size to 69812 bytes (68.2k, 33%).

After GZIP compression these minified files vary in size:
Boot
  29233 bytes (28.5k)
CDN
cdnjs
  25692 bytes (25.1k)
CDN
gzip -6 (default)
  25561 bytes (25.0k)
local copy
gzip -9
  25538 bytes (24.9k)
local copy
unpkg
  25530 bytes (24.9k)
CDN
jsdelivr
  25523 bytes (24.9k)
CDN
7zip -mx=9 -tgzip
  24690 bytes (24.1k)
local copy
kzip -s0 -rn -b1
  24678 bytes (24.1k)
local copy
libdeflate -12
  24673 bytes (24.1k)
local copy
zultra
  24657 bytes (24.1k)
local copy
pigz -11 -n
  24634 bytes (24.1k)
local copy
Zopfli
  24586 bytes (24.0k)
local copy

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

You will automatically get the smallest Vue 2.1.4 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 937 bytes by using my Vue 2.1.4 Zopfli version instead of the best available CDN (3.81% smaller than jsdelivr, 24586 vs. 25523 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 --i100000 --mb8 --mls64 --bsr8 --lazy --ohh

(found April 4, 2017)
Description Value Parameter
iterations 100000  --i100000
maximum blocks 8  --mb8
maximum length score 64  --mls64
block splitting recursion 8  --bsr8
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.1.4.min.js --location | md5sum
bb8e8e17a90060a52b955ac4715f9f6a  -
curl --silent --compressed https://minime.stephan-brumme.com/files/vue/vue-2.1.4.min.zopfli.js.gz | md5sum
bb8e8e17a90060a52b955ac4715f9f6a  -

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

All listed CDNs deliver identical contents:
CDN Size (compressed) MD5 (uncompressed) Timestamp
Boot 29233 bytes bb8e8e17a90060a52b955ac4715f9f6a (invalid)
cdnjs 25692 bytes bb8e8e17a90060a52b955ac4715f9f6a (invalid)
unpkg 25530 bytes bb8e8e17a90060a52b955ac4715f9f6a April 4, 2017 @ 10:09
jsdelivr 25523 bytes bb8e8e17a90060a52b955ac4715f9f6a (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
24586 bytes -3 bytes zopfli --i100000 --mls64 --bsr8 --lazy --ohh April 4, 2017 @ 16:12
24589 bytes -3 bytes zopfli --i10000 --mls64 --bsr8 --lazy --ohh April 4, 2017 @ 12:57
24592 bytes -2 bytes zopfli --i1000 --mls64 --bsr8 --lazy --ohh April 4, 2017 @ 10:46
24594 bytes -2 bytes zopfli --i1000 --mls32 --bsr22 --lazy --ohh April 4, 2017 @ 10:39
24596 bytes zopfli --i100 --mls32 --bsr22 --lazy --ohh April 4, 2017 @ 10:16

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

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 or 100,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
24622 24622 24621 24639 24626 24627 24638 24639 24639 24642 24642 24649 24634 24635 24646
24622 24630 24624 24626 24597 24636 24629 24635 24628 24623 24641 24641 24641 24637 24646
24626 24614 24619 24624 24601 24624 24606 24631 24626 24616 24641 24642 24640 24641 24639
24617 24612 24615 24617 24626 24604 24616 24628 24627 24629 24644 24642 24640 24642 24646
24592 24616 24625 24604 24599 24586 24635 24628 24603 24642 24640 24641 24642 24628 24639
24617 24618 24626 24622 24617 24614 24614 24623 24624 24621 24624 24641 24640 24638 24646
24626 24623 24625 24611 24624 24613 24613 24616 24621 24616 24626 24623 24628 24641 24640
24623 24622 24624 24626 24622 24617 24615 24629 24613 24623 24625 24627 24628 24628 24641
24631 24615 24626 24624 24623 24635 24620 24625 24625 24617 24630 24624 24629 24627 24641
24617 24613 24617 24615 24613 24620 24620 24625 24611 24627 24624 24641 24628 24629 24641
24613 24614 24615 24624 24613 24614 24617 24624 24613 24623 24630 24634 24628 24629 24629
24624 24623 24610 24612 24625 24618 24621 24620 24619 24630 24630 24627 24630 24628 24630
24624 24613 24624 24622 24628 24625 24618 24624 24624 24624 24624 24625 24641 24637 24628
24623 24616 24628 24608 24595 24612 24627 24626 24620 24621 24644 24641 24640 24636 24647
24625 24615 24618 24608 24613 24612 24615 24624 24619 24620 24641 24638 24641 24636 24642
24622 24612 24617 24614 24613 24629 24616 24624 24628 24623 24635 24642 24641 24640 24645
24612 24612 24628 24621 24613 24616 24613 24624 24619 24622 24632 24631 24641 24646 24644
24615 24623 24625 24611 24625 24628 24618 24616 24621 24621 24626 24624 24628 24632 24641
24616 24615 24618 24591 24591 24617 24606 24624 24620 24621 24625 24623 24639 24638 24641
24618 24617 24616 24615 24616 24616 24616 24624 24629 24621 24632 24633 24642 24636 24645
24616 24616 24622 24623 24612 24625 24616 24620 24623 24620 24626 24624 24626 24628 24639
24615 24613 24615 24614 24625 24628 24615 24620 24625 24625 24631 24633 24627 24627 24632
24613 24613 24611 24623 24614 24628 24628 24623 24623 24622 24632 24633 24639 24627 24641

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 24596 bytes 100%
1,000 24592 bytes -4 bytes 100%
10,000 24589 bytes -3 bytes 100%
100,000 24586 bytes -3 bytes 1.45%
1,000,000
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
24679 bytes +93 bytes (+0.38%) +1 byte
24678 bytes +92 bytes (+0.37%)
24687 bytes +101 bytes (+0.41%) +9 bytes
24689 bytes +103 bytes (+0.42%) +11 bytes
24690 bytes +104 bytes (+0.42%) +12 bytes
24708 bytes +122 bytes (+0.50%) +30 bytes
24741 bytes +155 bytes (+0.63%) +63 bytes
24778 bytes +192 bytes (+0.78%) +100 bytes
24788 bytes +202 bytes (+0.82%) +110 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 20747 bytes -3839 bytes (-15.61%)
RAR (proprietary) RAR rar a -m5 -md64m -mc63:128t -mt1 21137 bytes -3449 bytes (-14.03%)
PPMd (Wikipedia) 7zip 7za a -mx=9 -m0=ppmd 21202 bytes -3384 bytes (-13.76%)
Brotli (Wikipedia) brotli brotli -q 11 23033 bytes -1553 bytes (-6.32%)
Burrows-Wheeler transform (Wikipedia) bzip2 bzip2 -9 23702 bytes -884 bytes (-3.60%)
LZMA2 (Wikipedia) xz xz -9 23728 bytes -858 bytes (-3.49%)
Zstandard (Wikipedia) zstd zstd -19 24305 bytes -281 bytes (-1.14%)

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.