rails5.1でreactを書いていてこういうエラーが出る場合

解決方法

stage-0
、stage-1
またはstage-2
をconfig/loaders/react.js
に入れる
なぜこれで直るのか?
rails5.1ではデフォルトで babel-preset-envを使用していて、書かれているようにstage-0、stage-1、stage-2..のようなpluginは含まれない。
It won't include stage-x plugins. env will support all plugins in what we consider the latest version of Javascript (by matching what we do in babel-preset-latest).
プラグインは実験的なものも多く、stageが上がるほどより洗練されて行っている
stage-0 > stage-1 > ...
つまりdeprecatedなpluginはstageが0
に行くほど多い

今回問題のSyntaxError: Missing class properties transform.
はtransform-class-propertiesが入っていない事が問題で、これはstage-2
に含まれており、それ以前のstageにも含まれている(要は0
と1
)
だから結果として適切なstage-x
を入れるとコンパイルエラーが無くなる
babel-preset-env
参考: http://qiita.com/ryuone/items/13f5d450c3865709ba10
この問題の解決方法を探す間に.babelrc
を簡単に書くサイトを見つけたので紹介