Distribution location of compiled, bundled, transpiled, and compressed files.
📖 Please see /bin/README.md
For a list of bin
scripts used within the build pipeline.
- Content Negotiation
- MDN MIME Types List
- MDN HTTP MIME Types
- WHATWG MIME Types
- WHATWG MIME Sniffing
- WHATWG/W3C approval of media types
- IETF Media Type Specifications and Registration Procedures (rfc6838)
Solves the "Duplicate Directory" problem - https://github.com/dherman/defense-of-dot-js/blob/master/proposal.md#poly-packages
- TC39 - ECMAScript formerly TC39-TG1)
- IANA
application/ecmascript
Media Type - IETF ECMAScript Media Types Updates
- ECMASCript Media Type Specification (rfc4329 Section 8.2)
- Why you should know
application/ecmascript
- WHATWG Fetch Preload desitinations and module scripts - https://tools.ietf.org/html/rfc6838
- 2Ality Module Specifiers - http://2ality.com/2017/05/es-module-specifiers.html
- The state of Webpack modules - https://medium.com/webpack/the-state-of-javascript-modules-4636d1774358
- ECMAScript Modules - https://hackernoon.com/node-js-tc-39-and-modules-a1118aecf95e
- ESM (ECMAScript Module) Detection in Node.js - https://github.com/nodejs/node/wiki/ES6-Module-Detection-in-Node#detection-problem
- Node.js EPS - https://github.com/bmeck/node-eps/blob/a1eab9bf023bbe13a79ddb18f0622a5d57215f9b/002-es-modules.md#461-default-imports
- Point script to module script WHATWG - whatwg/html#1013
- Correct usage of mime types - bmeck/I-D#16
Mime Type : application/ecmascript
(Specification)
Weight : ~ 1,469 OCTETS (1.3kiloBytes)
Mime Type : application/javascript
(Specification)
Weight : ~ 1,726 OCTETS (1.6kiloBytes)
Mime Type : application/ecmascript
(Specification)
- Uses cat command for creating ECMAScript bundle.
elements/*.es
➡️ snuggsi.es
Mime Type : application/javascript
(Specification)
File Extension: .js
- Uses buble.js
snuggsi.es
➡️ snuggsi.js
Mime Type : application/ecmascript
(Specification)
Mime Type : application/javascript
(Specification)
(Uses Uses uglify-es
)
(Uses UglifyJS)
DEFLATE
be great.
here
,here
, here
,and here
snuggsi handles the following content encoding tokens:
-
brotli
-
gzip
-
deflate
(zlib) -
Comparison of Brotli, Deflate, Zopfli, LZMA, LZHAM and Bzip2 Compression Algorithms
-
DEFLATE format - https://en.wikipedia.org/wiki/DEFLATE
snuggsi.min.es
➡️ snuggsi.min.es.br
snuggsi.min.js
➡️ snuggsi.min.js.br
Links
- Brotli Compressed Data Format (rfc7932)
- http://caniuse.com/#search=brotli
- https://en.wikipedia.org/wiki/Brotli
- https://certsimple.com/blog/nginx-brotli
- https://blogs.akamai.com/2016/02/understanding-brotlis-potential.html
- https://hacks.mozilla.org/2015/11/better-than-gzip-compression-with-brotli
Server Support
- Apache (mod_brotli) - https://httpd.apache.org/docs/trunk/mod/mod_brotli.html
- Express (shrink-ray) - https://github.com/aickin/shrink-ray
- Go (compress) - https://github.com/dsnet/compress
- IIS (IIS Brotli) - https://www.iis.net/downloads/community/2016/03/iis-brotli
- Koa (koa-send) - https://github.com/koajs/send
- NGINX (ngx_brotli) - https://github.com/google/ngx_brotli
- Node (brotli) - https://www.npmjs.com/package/brotli
- Node (iltrob) - https://github.com/MayhemYDG/iltorb
- Ruby (brotli) - https://github.com/miyucy/brotli
Browser Support
- http://caniuse.com/#search=brotli
- Google Chrome has supported Brotli since version 49
- Microsoft Edge supports Brotli since version 15
- Mozilla Firefox implemented Brotli in version 44
- Opera supports Brotli since version 36
- Safari supports Brotli as of version 10, released September 20, 2016
snuggsi.min.es
➡️ snuggsi.min.es.zo
snuggsi.min.js
➡️ snuggsi.min.js.zo
Links
- Zopfli Optimization: Literally Free Bandwidth - Coding Horror
- ZLIB format - https://en.wikipedia.org/wiki/Zlib
- rfc1950
GZip Compression rfc1952 (snuggsi.min.gz)
snuggsi.min.es
➡️ snuggsi.min.es.gz
snuggsi.min.js
➡️ snuggsi.min.js.gz
a gzip file/stream contains:
- a 10-byte header, containing a magic number, a version number and a time stamp
- optional extra headers, such as the original file name,
- a body, containing a DEFLATE-compressed payload
- an 8-byte footer, containing a CRC-32 checksum and the length of the original uncompressed data
Links
- GZIP format - https://en.wikipedia.org/wiki/Zlib
- rfc1952
Server Support
Browser Support
- http://caniuse.com/#search=gzip
- http://schroepl.net/projekte/mod_gzip/browser.htm
- Netscape 6+ (Netscape 4-5 does, but with some bugs)
- Internet Explorer 5.5+ (July 2000) and IE 4 if set to HTTP/1.1
- Opera 5+ (June 2000)
- Lynx 2.6+ (some time before 1999)
- Firefox 0.9.5+ (October 2001)
- Chrome since forever
- Safari since forever (as far as I can tell)