結論
rails_admin gemを3.0.0 から 3.1.1にアップデートするときにuglifierでアセットのプレコンパイルが通らないエラーが出た。
Uglifier::Error: assets precompilation failed.
結論としては、uglifierがES6に対応してないためプレコンパイルが通らなかった。terserに置き換えたら解決した。
gem terser
経緯
まず、uglifierはもうメンテされてない。最終コミットが2021年9月だ。
そして、READMEにも「ruby-terserのほうが良い選択だよ」と書かれている。
UglifyJS only works with ES5. If you need to compress ES6, ruby-terser is a better option.
まんま書いてるけど、uglifierはES5にしか対応していない。なのでterserを使う。
configに
config.assets.js_compressor = Uglifier.new(harmony: true)
を記述していたが、これでもダメだった。
terser gemをbundle install
し、config/environments/production.rb
に以下を記述。
config.assets.js_compressor = Uglifier.new(harmony: true) # 削除 config.assets.js_compressor = :terser # 記述
無事プレコンパイルが通るようになりました。
以下の記事を参考にさせていただきました。感謝。