(せんたうろ)
javascriptファイルを含むRailsアプリをHerokuにデプロイしようとした際に困った点を紹介します。
`${item.Item.itemName}`
こんな感じにテンプレートリテラルを記述したjavascriptを含むRailsアプリをHerokuにpushしたら、precompileエラーと出て、詰まってしまいました。検索してみると、Herokuがらみで見当たるものはありませんでしたが、AWSでの同様の事例がみつかります。
直接的には、precompileを行なっているUglifierのせいのようです。
解決方法① バッククォートではなくシングルクォートを使う
「`baa${foo}baa`」→「'baa' + foo + 'baa'」
解決方法② Uglifierをコメントアウト
config/environments/production.rb
# config.assets.js_compressor = :uglifier
解決方法③ Uglifierの記述を変更
config/environments/production.rb
config.assets.js_compressor = Uglifier.new(harmony: true)
私は最初②のコメントアウトで対処していたんですが、Uglifierを使った方がサイズ減るのかなと③に変更しています。容量は、結局ほぼ変わりませんでしたが…。