1. paranishian

    Posted

    paranishian
Changes in title
+webpackerでtest環境でもgzip圧縮する
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,45 @@
+## はじめに
+
+webpackerはデフォルトではproductionのときしかgzip圧縮しません。
+
+test時にもgzip圧縮したかったので設定しました。
+
+## 環境
+
+rails 5.0.6
+webpacker 3.2.2
+
+## コード
+
+設定ファイルを修正すればOKです。
+productionの設定を参考にしました。
+ [webpacker/production.js at 227661b546701e107213aa9b6f83451bc89cf7d5 · rails/webpacker](https://github.com/rails/webpacker/blob/227661b546701e107213aa9b6f83451bc89cf7d5/package/environments/production.js)
+
+```diff:config/webpack/test.js
+const environment = require('./environment')
+const CompressionPlugin = require('compression-webpack-plugin')
+
++ environment.plugins.append(
++ 'Compression',
++ new CompressionPlugin({
++ asset: '[path].gz[query]',
++ algorithm: 'gzip',
++ test: /\.(js|css|html|json|ico|svg|eot|otf|ttf)$/
++ })
++ )
+
+module.exports = environment.toWebpackConfig()
+```
+
+## 動作確認
+test環境でcompileして、output先にgzipファイルがあればOK。
+
+```sh
+RAILS_ENV=test bundle exec rake webpacker:compile
+```
+
+以上です :hugging:
+
+## 参考
+- [rails/webpacker: Use Webpack to manage app-like JavaScript modules in Rails](https://github.com/rails/webpacker)
+- [Webpacker 3.0 でのWebpackの設定カスタマイズ - upinetree's memo](http://upinetree.hatenablog.com/entry/2017/09/21/084448)