概要
Railsでchart.jsを使おうとして、
bundle exec rails assets:precompile
を実行すると Uglifier::Error: が発生する。
production環境だとエラーだが、develop環境だとエラーなく使える。
解決策
config/environments/production.rb でコンパイラをterserにする。
config.assets.js_compressor = :terser
terserのインストール方法は ahorek/terser-ruby
原因
chart-js-railsを使わないでchart.jsをインストールした
chart-js-railsを使用すれば、この問題は発生せずにchart.jsを使用できる。今回は余計なgemを使いたくなかったので、chart-js-railsを使用しなかったが、これが失敗の原因の一つだった。
chart.jsは yarn add chart.jsでインストールし、app/assets/javascripts/application.jsに
//= require chart.js/dist/chart.min.js
を追加して、インストールした。
jsのコンパイラとしてUglifierを使用していた
よくわかっていないが、terserを使ったらうまくいった。
エラーになる config/environments/production.rb の設定
config.assets.js_compressor = Uglifier.new(harmony: true)
Comments