Choose a version:
31% The original file has 253276 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 78454 bytes (76.6k, 31%).

After GZIP compression these minified files vary in size:
Boot
  32755 bytes (32.0k)
CDN
cdnjs
  28870 bytes (28.2k)
CDN
gzip -6 (default)
  28704 bytes (28.0k)
local copy
unpkg
  28652 bytes (28.0k)
CDN
gzip -9
  28648 bytes (28.0k)
local copy
jsdelivr
  28634 bytes (28.0k)
CDN
libdeflate -12
  27709 bytes (27.1k)
local copy
7zip -mx=9 -tgzip
  27696 bytes (27.0k)
local copy
kzip -s0 -rn -b1
  27692 bytes (27.0k)
local copy
zultra
  27656 bytes (27.0k)
local copy
pigz -11 -n
  27640 bytes (27.0k)
local copy
Zopfli
  27600 bytes (27.0k)
local copy

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

You will automatically get the smallest Vue 2.3.1 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 1034 bytes by using my Vue 2.3.1 Zopfli version instead of the best available CDN (3.75% smaller than jsdelivr, 27600 vs. 28634 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 --mls8 --bsr9 --lazy --ohh

(found May 5, 2017)
Description Value Parameter
iterations 1000000  --i1000000
maximum blocks 8  --mb8
maximum length score 8  --mls8
block splitting recursion 9  --bsr9
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.1.min.js --location | md5sum
96f01b03a04ae397045afabf1c5e8d89  -
curl --silent --compressed https://minime.stephan-brumme.com/files/vue/vue-2.3.1.min.zopfli.js.gz | md5sum
96f01b03a04ae397045afabf1c5e8d89  -

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

All listed CDNs deliver identical contents:
CDN Size (compressed) MD5 (uncompressed) Timestamp
Boot 32755 bytes 96f01b03a04ae397045afabf1c5e8d89 (invalid)
cdnjs 28870 bytes 96f01b03a04ae397045afabf1c5e8d89 (invalid)
unpkg 28652 bytes 96f01b03a04ae397045afabf1c5e8d89 May 4, 2017 @ 11:30
jsdelivr 28634 bytes 96f01b03a04ae397045afabf1c5e8d89 (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
27600 bytes -3 bytes zopfli --i1000000 --mls8 --bsr9 --lazy --ohh May 5, 2017 @ 13:01
27603 bytes -2 bytes zopfli --i100000 --mls8 --bsr9 --lazy --ohh May 4, 2017 @ 14:41
27605 bytes -3 bytes zopfli --i10000 --mls8 --bsr9 --lazy --ohh May 4, 2017 @ 14:04
27608 bytes -4 bytes zopfli --i1000 --mls8 --bsr9 --lazy --ohh May 4, 2017 @ 12:51
27612 bytes -2 bytes zopfli --i1000 --mls32 --bsr9 --lazy --ohh May 4, 2017 @ 12:51
27614 bytes zopfli --i100 --mls8 --bsr9 --lazy --ohh May 4, 2017 @ 12:40

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

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
27653 27652 27652 27647 27649 27649 27649 27647 27648 27622 27634 27634 27621 27636 27643
27610 27633 27631 27631 27645 27647 27651 27628 27618 27619 27628 27636 27623 27636 27633
27626 27625 27624 27624 27621 27622 27622 27622 27627 27623 27621 27636 27626 27622 27626
27648 27626 27624 27620 27648 27620 27622 27620 27620 27621 27621 27637 27622 27626 27625
27622 27626 27622 27619 27618 27626 27645 27630 27619 27620 27621 27637 27621 27626 27625
27623 27617 27600 27634 27606 27623 27646 27621 27620 27619 27619 27636 27627 27626 27626
27626 27618 27624 27626 27637 27622 27647 27624 27623 27618 27627 27631 27622 27624 27628
27636 27622 27634 27617 27627 27625 27638 27624 27618 27622 27622 27636 27622 27623 27627
27642 27622 27620 27621 27643 27622 27620 27627 27619 27620 27620 27636 27621 27622 27626
27637 27627 27620 27625 27642 27620 27621 27625 27620 27619 27625 27636 27639 27630 27629
27622 27619 27621 27621 27621 27620 27621 27623 27623 27621 27619 27637 27623 27624 27628
27624 27628 27624 27626 27622 27622 27621 27625 27619 27619 27619 27634 27625 27626 27629
27624 27622 27619 27617 27646 27623 27627 27624 27623 27619 27619 27636 27623 27625 27624
27620 27618 27618 27619 27623 27620 27624 27624 27623 27626 27626 27636 27627 27626 27626
27623 27627 27619 27627 27632 27621 27627 27624 27621 27619 27620 27636 27619 27636 27627
27623 27618 27612 27622 27622 27620 27647 27624 27618 27624 27627 27639 27623 27619 27627
27622 27627 27621 27623 27623 27621 27645 27624 27620 27617 27620 27631 27625 27621 27626
27619 27625 27625 27625 27620 27621 27629 27635 27622 27619 27637 27637 27626 27622 27629
27639 27618 27619 27619 27641 27623 27627 27624 27619 27622 27622 27637 27622 27629 27626
27636 27622 27620 27618 27618 27619 27623 27624 27619 27620 27626 27637 27622 27627 27626
27641 27631 27621 27639 27640 27635 27649 27627 27645 27618 27620 27631 27622 27622 27627
27608 27629 27618 27620 27622 27619 27621 27648 27619 27619 27619 27636 27626 27625 27627
27634 27621 27619 27622 27642 27618 27644 27623 27619 27619 27623 27636 27622 27624 27623

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 27614 bytes 100%
1,000 27608 bytes -6 bytes 100%
10,000 27605 bytes -3 bytes 100%
100,000 27603 bytes -2 bytes 1.16%
1,000,000 27600 bytes -3 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
27696 bytes +96 bytes (+0.35%) +4 bytes
27692 bytes +92 bytes (+0.33%)
27702 bytes +102 bytes (+0.37%) +10 bytes
27707 bytes +107 bytes (+0.39%) +15 bytes
27719 bytes +119 bytes (+0.43%) +27 bytes
27705 bytes +105 bytes (+0.38%) +13 bytes
27736 bytes +136 bytes (+0.49%) +44 bytes
27767 bytes +167 bytes (+0.61%) +75 bytes
27803 bytes +203 bytes (+0.74%) +111 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 22840 bytes -4760 bytes (-17.25%)
RAR (proprietary) RAR rar a -m5 -md64m -mc63:128t -mt1 23507 bytes -4093 bytes (-14.83%)
PPMd (Wikipedia) 7zip 7za a -mx=9 -m0=ppmd 24209 bytes -3391 bytes (-12.29%)
Brotli (Wikipedia) brotli brotli -q 11 25735 bytes -1865 bytes (-6.76%)
Burrows-Wheeler transform (Wikipedia) bzip2 bzip2 -9 26376 bytes -1224 bytes (-4.43%)
LZMA2 (Wikipedia) xz xz -9 26456 bytes -1144 bytes (-4.14%)
Zstandard (Wikipedia) zstd zstd -19 27148 bytes -452 bytes (-1.64%)

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.