にこいち育児

楽しむ育児を目指すポンコツふたり

【Rails】「`」バッククォートのせいでHerokuへのデプロイに失敗する事例への対処

(せんたうろ)
 javascriptファイルを含むRailsアプリをHerokuにデプロイしようとした際に困った点を紹介します。

`${item.Item.itemName}`

 こんな感じにテンプレートリテラルを記述したjavascriptを含むRailsアプリをHerokuにpushしたら、precompileエラーと出て、詰まってしまいました。検索してみると、Herokuがらみで見当たるものはありませんでしたが、AWSでの同様の事例がみつかります。

 直接的には、precompileを行なっているUglifierのせいのようです。

 

taremimi.hatenablog.jp

qiita.com

 

解決方法① バッククォートではなくシングルクォートを使う

「`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を使った方がサイズ減るのかなと③に変更しています。容量は、結局ほぼ変わりませんでしたが…。