web-dev-qa-db-ja.com

ES6(ES2015)をRuby on Railsアプリで使用するにはどうすればよいですか?

4.2 Rails=アプリがあり、JSをES6にゆっくり変換することを検討しています。現在、標準のRails私のjsを前処理します。

Rails app。

組み込みの方法、または推奨されるツールまたはワークフローはありますか?

19
pixelearth

現在のところ、残念ながらこれを行うための「標準的な」方法はありません。その多くはアプリの要件と、SprocketsやRailsをアップグレードできるかどうかに依存します。

オプション1:Rails 4.2およびSprockets 3を使用し、このgemを使用してES6サポートを追加し、徐々に移行しますES6モジュール: https://github.com/rmacklin/sprockets-bumble_d

オプション2:Sprockets 4(まだベータ版)にアップグレードし、 https://github.com/fnando/babel- schmooze-sprockets または https://github.com/babel/Ruby-babel-transpiler ES6サポート用にbabelを追加します。両方ともかなりしっかりしたドキュメントがあります。

オプション3:スプロケットの代わりに、またはスプロケットと一緒にwebpackを使用します。グーグル検索により、これに対するいくつかのアプローチが明らかになります。 Rails 5.1(まだベータ版)は webpacker gem を介してネイティブwebpack(およびbabel)サポートを導入します。確かにこれは既存のアプリケーションにとってより難しいオプションかもしれません。それについての良い記事がここにあります: https://medium.com/statuscode/introducing-webpacker-7136d66cddfb#.cb4sixyah

18
Mike

Production.rbファイルでこれを置き換えます

config.assets.js_compressor = :uglifier

これとともに

config.assets.js_compressor = Uglifier.new(harmony: true)

Devの場合、Chromeはes6をコンパイルします。

https://github.com/lautis/uglifier

https://www.rubydoc.info/gems/uglifier

2
Tom Hall