Webpacker 3.2.0がすべてをfile-loaderで飲み込む問題から設定の覗き方を知る

※ この問題は 3.2.1 で修正済みです

Webpacker はデフォルトの設定だけで結構いろんなことができる1のだが、逆に何かの設定を追加しようとする際に何が原因でうまくいかないのかよく分からないという事態に陥ることがある。

今回ハマったのは yaml-loader を追加しようとしたがどうしても yaml-loader に処理が渡らないという問題。

結論から言うと Webpacker 3.2.0 が aggressive すぎる。

Excluding vs testing files · Issue #1127 · rails/webpacker

これは 3.2.1 で直ってるんだけど、逃げ方はあって、

config/webpacker/environment.js で最後の

module.exports = environment

より前に

const fileLoader = environment.loaders.get('file')
fileLoader.exclude = new RegExp(
  fileLoader.exclude.toString().replace(/^\//, '').
                                replace(/\$\//, '').
                                replace(/\$/, '|ya?ml$'))

ってやると特定の loader(今回は file-loader )の設定を書き換えることができる。

なるほど、Webpacker はある程度のマジカルさを受け入れる代わりに便利になるんだけど、一応 Webpack の設定の中身を扱うことはできるってことがわかった。

  1. 少なくともメジャーなフレームワークなどは 

More