Railsでchart.jsを使おうとするとUglifier::Error:

概要

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

タイトルとURLをコピーしました