Webpack で
webpack-contrib/zopfli-webpack-plugin: Prepare compressed versions of assets with node-zopfli zopfli で
追記 後日 plugin を 外しました。
webpack-contrib/zopfli-webpack-plugin: Prepare compressed versions of assets with node-zopfli が
記載方法ですかね。
コンテンツを 圧縮する
圧縮対象の ファイル
svg ファイルを
ファイルの種類 | Byte数 | ファイル名 |
---|---|---|
末圧縮 | 287007 | 65bcbc899f379216109acd0b6c494618.svg |
インストール、 設定
インストール
npm i -D zopfli-webpack-plugin
webpack.config.json に
ZopfliPlugin を 追加する
README.md
のまんまですが、 以下を 記載します。 var ZopfliPlugin = require("zopfli-webpack-plugin"); module.exports = { plugins: [ //........ new ZopfliPlugin({ asset: "[path].gz[query]", algorithm: "zopfli", test: /\.(js|css|png|ttf|woff|eot|svg)$/, threshold: 10240, minRatio: 0.8 }) ] }
ビルド後の gz の 容量の 確認
通常の
ファイルの種類 | Byte数 | ファイル名 |
---|---|---|
末圧縮 | 287007 | 65bcbc899f379216109acd0b6c494618.svg |
zopfli | 80159 | 65bcbc899f379216109acd0b6c494618.svg.gz |
gzip | 86432 | 65bcbc899f379216109acd0b6c494618_svg.gz |
設定を 変更する
option を
numiterations を
plugins: [ //........ new ZopfliPlugin({ asset: "[path].gz[query]", algorithm: "zopfli", test: /\.(js|css|ttf|woff|eot|svg)$/, threshold: 10240, minRatio: 0.9, numiterations : 50, blocksplittinglast : true, blocksplittingmax : 30 }) ]
ファイルの種類 | Byte数 | ファイル名 |
---|---|---|
option指定前 | 80159 | 65bcbc899f379216109acd0b6c494618.svg.gz |
option指定後 | 80136 | 65bcbc899f379216109acd0b6c494618.svg.gz |
多少ファイルサイズが
png の 圧縮を 試みる
pierreinglebert/node-zopfli: Node bindings for Zopfli Compression Algorithm (zlib, gzip, deflate compatible) には、
指定できるのかzopflipng
を
new ZopfliPlugin({ asset: "[path].gz[query]", algorithm: "zopflipng", test: /\.(png)$/, threshold: 10240, minRatio: 0.99, numiterations : 50, blocksplittinglast : true, blocksplittingmax : 30 })
png 圧縮には
HTTP サーバの 設定
mod_deflate での
* gzip 圧縮した
以上です。
option の
意味は わかって 設定していません。 numiterations は 試行回数だと 思いますが、 他は よくわからず 指定しています。
pierreinglebert/node-zopfli: Node bindings for Zopfli Compression Algorithm (zlib, gzip, deflate compatible) に解説は あります。 ↩
コメント