1
0

More than 1 year has passed since last update.

RailsでTerser利用時にconsole.logを消したい

Posted at

アセットパイプラインで、JavaScriptの圧縮にTerserを利用するとき、次のように設定しているケースが多いかと思います。

config/environments/production.rb
config.assets.js_compressor = :terser

通常、この設定で問題はないのですが、
本番リリース時は、console.logも合わせて消したい! となると、非常に残念なお知らせとなります。
この設定ですと、JavaScriptに書かれた"コメント"は消えるのですが、console.logはそのままソースコードに残ってしまうためです。

そこで、Terserにオプションを渡してあげて、挙動を調整していきます。

console.logを消すための設定

JavaScript圧縮時、console.logを含む「console.*」系も全て消したい場合

config.assets.js_compressor = Terser.new(compress: { drop_console: true })

一方、console.debugだけ消したいケースもあるかと思います。
その場合は「pure_funcs」で個別に指定する事で可能となります。

config.assets.js_compressor = Terser.new(compress: { pure_funcs: ['console.debug'] })

複数指定したい場合は、カンマ区切りで追加することで可能となります。

config.assets.js_compressor = Terser.new(compress: { pure_funcs: ['console.debug','console.info'] })

もっとできる事を探す

Terserには、他にも多くのオプションが用意されています。
詳しくは、READMEやAPIリファレンスをご覧ください。

Terser(gem) リポジトリ

APIリファレンス

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0