Uglifier::Error: Unexpected token: keyword ( ). To use ES6 syntax, harmony mode must be enabled with Uglifier.new(:harmony => true)

Rails5にJavaScriptてんこ盛りで作成したアプリケーションをCapistranoでproduction環境に上げようと試みるも、 UglifierによるJavaScriptファイルのプリコンパイルで止まってしまう。

ローカルのターミナルにて

$ bundle exec cap production deploy

# 略

deploy:assets:precompile
  $HOME/.rbenv/bin/rbenv exec bundle exec rake assets:precompile
  rake aborted!
  Uglifier::Error: Unexpected token: keyword (const). To use ES6 syntax, harmony mode must be enabled with Uglifier.new(:harmony => true).

# 略

エラー文にも匂わされているし、エラー文で調べると死ぬほど記事出てくるし、 なんなら公式GitHubのREADMEど頭にも書かれているけど、 デフォルトではES6のJavaScriptの構文に対応していないのだそうです。 config//environments/production.rbを以下のように書き換えると対応できるようになります。

# デフォルト
config.assets.js_compressor = :uglifier

# 修正
config.assets.js_compressor = Uglifier.new(harmony: true)

書き換えたらリモートにプッシュ→本番環境へデプロイすることを忘れずに(忘れて30分間は詰んでいた)